Python Forum
help with plt.fill_between
Thread Rating:
  • 1 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
help with plt.fill_between
#1
Hi,

I want to write this script in a shorter way maybe using do loops.
Also in the way the script is written the instruction plt.fill_between is giving me
the following error: ValueError: Argument dimensions are incompatible

Any help? Also how do I attach a file to this message?

Maria

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import AutoMinorLocator
from pylab import *

data_chi = np.loadtxt('energies.dat')
data_il7 = np.loadtxt('IL7.dat')
data_exp = np.loadtxt('exp.dat')

xx_chi = data_chi[:,0]
xx_il7 = data_il7[:,0]
xx_exp = data_exp[:,0]

xx_chi = xx_chi +3.
xx_il7 = xx_il7 +3. +0.1
xx_exp = xx_exp +3. +0.2


x_chi = [xx_chi,xx_chi+0.4]
x_il7 = [xx_il7,xx_il7+0.4]
x_exp = [xx_exp,xx_exp+0.4]


yy_chi_gs = data_chi[:,1]
ey_chi_gs = data_chi[:,2]
yy_il7_gs = data_il7[:,1]
ey_il7_gs = data_il7[:,2]
yy_exp_gs = data_exp[:,1]
ey_exp_gs = data_exp[:,2]

yy_chi_1s = data_chi[:,3]
ey_chi_1s = data_chi[:,4]
yy_il7_1s = data_il7[:,3]
ey_il7_1s = data_il7[:,4]
yy_exp_1s = data_exp[:,3]
ey_exp_1s = data_exp[:,4]

yy_chi_2s = data_chi[:,5]
ey_chi_2s = data_chi[:,6]
yy_il7_2s = data_il7[:,5]
ey_il7_2s = data_il7[:,6]
yy_exp_2s = data_exp[:,5]
ey_exp_2s = data_exp[:,6]

yy_chi_3s = data_chi[:,7]
ey_chi_3s = data_chi[:,8]
yy_il7_3s = data_il7[:,7]
ey_il7_3s = data_il7[:,8]
yy_exp_3s = data_exp[:,7]
ey_exp_3s = data_exp[:,8]

yy_chi_4s = data_chi[:,9]
ey_chi_4s = data_chi[:,10]
yy_il7_4s = data_il7[:,9]
ey_il7_4s = data_il7[:,10]
yy_exp_4s = data_exp[:,9]
ey_exp_4s = data_exp[:,10]

yy_chi_5s = data_chi[:,11]
ey_chi_5s = data_chi[:,12]
yy_il7_5s = data_il7[:,11]
ey_il7_5s = data_il7[:,12]
yy_exp_5s = data_exp[:,11]
ey_exp_5s = data_exp[:,12]

lw=0.7

y_chi_gs  = [yy_chi_gs,yy_chi_gs]
yl_chi_gs = [yy_chi_gs-ey_chi_gs,yy_chi_gs-ey_chi_gs]
yu_chi_gs = [yy_chi_gs+ey_chi_gs,yy_chi_gs+ey_chi_gs]
plt.plot(x_chi,yu_chi_gs,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_gs,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_gs,color='blue',linewidth=lw)

y_chi_1s  = [yy_chi_1s,yy_chi_1s]
yl_chi_1s = [yy_chi_1s-ey_chi_1s,yy_chi_1s-ey_chi_1s]
yu_chi_1s = [yy_chi_1s+ey_chi_1s,yy_chi_1s+ey_chi_1s]
plt.plot(x_chi,yu_chi_1s,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_1s,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_1s,color='blue',linewidth=lw)

y_chi_2s  = [yy_chi_2s,yy_chi_2s]
yl_chi_2s = [yy_chi_2s-ey_chi_2s,yy_chi_2s-ey_chi_2s]
yu_chi_2s = [yy_chi_2s+ey_chi_2s,yy_chi_2s+ey_chi_2s]
plt.plot(x_chi,yu_chi_2s,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_2s,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_2s,color='blue',linewidth=lw)

y_chi_3s  = [yy_chi_3s,yy_chi_3s]
yl_chi_3s = [yy_chi_3s-ey_chi_3s,yy_chi_3s-ey_chi_3s]
yu_chi_3s = [yy_chi_3s+ey_chi_3s,yy_chi_3s+ey_chi_3s]
plt.plot(x_chi,yu_chi_3s,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_3s,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_3s,color='blue',linewidth=lw)

y_chi_4s  = [yy_chi_4s,yy_chi_4s]
yl_chi_4s = [yy_chi_4s-ey_chi_4s,yy_chi_4s-ey_chi_4s]
yu_chi_4s = [yy_chi_4s+ey_chi_4s,yy_chi_4s+ey_chi_4s]
plt.plot(x_chi,yu_chi_4s,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_4s,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_4s,color='blue',linewidth=lw)

y_chi_5s  = [yy_chi_5s,yy_chi_5s]
yl_chi_5s = [yy_chi_5s-ey_chi_5s,yy_chi_5s-ey_chi_5s]
yu_chi_5s = [yy_chi_5s+ey_chi_5s,yy_chi_5s+ey_chi_5s]
plt.plot(x_chi,yu_chi_5s,color='blue',linewidth=lw)
plt.plot(x_chi,y_chi_5s,color='blue',linewidth=lw)
plt.plot(x_chi,yl_chi_5s,color='blue',linewidth=lw)

y_il7_gs  = [yy_il7_gs,yy_il7_gs]
yl_il7_gs = [yy_il7_gs-ey_il7_gs,yy_il7_gs-ey_il7_gs]
yu_il7_gs = [yy_il7_gs+ey_il7_gs,yy_il7_gs+ey_il7_gs]
plt.plot(x_il7,yu_il7_gs,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_gs,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_gs,color='red',linewidth=lw)

y_il7_1s  = [yy_il7_1s,yy_il7_1s]
yl_il7_1s = [yy_il7_1s-ey_il7_1s,yy_il7_1s-ey_il7_1s]
yu_il7_1s = [yy_il7_1s+ey_il7_1s,yy_il7_1s+ey_il7_1s]
plt.plot(x_il7,yu_il7_1s,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_1s,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_1s,color='red',linewidth=lw)

y_il7_2s  = [yy_il7_2s,yy_il7_2s]
yl_il7_2s = [yy_il7_2s-ey_il7_2s,yy_il7_2s-ey_il7_2s]
yu_il7_2s = [yy_il7_2s+ey_il7_2s,yy_il7_2s+ey_il7_2s]
plt.plot(x_il7,yu_il7_2s,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_2s,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_2s,color='red',linewidth=lw)

y_il7_3s  = [yy_il7_3s,yy_il7_3s]
yl_il7_3s = [yy_il7_3s-ey_il7_3s,yy_il7_3s-ey_il7_3s]
yu_il7_3s = [yy_il7_3s+ey_il7_3s,yy_il7_3s+ey_il7_3s]
plt.plot(x_il7,yu_il7_3s,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_3s,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_3s,color='red',linewidth=lw)

y_il7_4s  = [yy_il7_4s,yy_il7_4s]
yl_il7_4s = [yy_il7_4s-ey_il7_4s,yy_il7_4s-ey_il7_4s]
yu_il7_4s = [yy_il7_4s+ey_il7_4s,yy_il7_4s+ey_il7_4s]
plt.plot(x_il7,yu_il7_4s,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_4s,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_4s,color='red',linewidth=lw)

y_il7_5s  = [yy_il7_5s,yy_il7_5s]
yl_il7_5s = [yy_il7_5s-ey_il7_5s,yy_il7_5s-ey_il7_5s]
yu_il7_5s = [yy_il7_5s+ey_il7_5s,yy_il7_5s+ey_il7_5s]
plt.plot(x_il7,yu_il7_5s,color='red',linewidth=lw)
plt.plot(x_il7,y_il7_5s,color='red',linewidth=lw)
plt.plot(x_il7,yl_il7_5s,color='red',linewidth=lw)

y_exp_gs  = [yy_exp_gs,yy_exp_gs]
yl_exp_gs = [yy_exp_gs-ey_exp_gs,yy_exp_gs-ey_exp_gs]
yu_exp_gs = [yy_exp_gs+ey_exp_gs,yy_exp_gs+ey_exp_gs]
plt.plot(x_exp,yu_exp_gs,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_gs,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_gs,color='green',linewidth=lw)

y_exp_1s  = [yy_exp_1s,yy_exp_1s]
yl_exp_1s = [yy_exp_1s-ey_exp_1s,yy_exp_1s-ey_exp_1s]
yu_exp_1s = [yy_exp_1s+ey_exp_1s,yy_exp_1s+ey_exp_1s]
plt.plot(x_exp,yu_exp_1s,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_1s,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_1s,color='green',linewidth=lw)

y_exp_2s  = [yy_exp_2s,yy_exp_2s]
yl_exp_2s = [yy_exp_2s-ey_exp_2s,yy_exp_2s-ey_exp_2s]
yu_exp_2s = [yy_exp_2s+ey_exp_2s,yy_exp_2s+ey_exp_2s]
plt.plot(x_exp,yu_exp_2s,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_2s,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_2s,color='green',linewidth=lw)

y_exp_3s  = [yy_exp_3s,yy_exp_3s]
yl_exp_3s = [yy_exp_3s-ey_exp_3s,yy_exp_3s-ey_exp_3s]
yu_exp_3s = [yy_exp_3s+ey_exp_3s,yy_exp_3s+ey_exp_3s]
plt.plot(x_exp,yu_exp_3s,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_3s,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_3s,color='green',linewidth=lw)

y_exp_4s  = [yy_exp_4s,yy_exp_4s]
yl_exp_4s = [yy_exp_4s-ey_exp_4s,yy_exp_4s-ey_exp_4s]
yu_exp_4s = [yy_exp_4s+ey_exp_4s,yy_exp_4s+ey_exp_4s]
plt.plot(x_exp,yu_exp_4s,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_4s,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_4s,color='green',linewidth=lw)

y_exp_5s  = [yy_exp_5s,yy_exp_5s]
yl_exp_5s = [yy_exp_5s-ey_exp_5s,yy_exp_5s-ey_exp_5s]
yu_exp_5s = [yy_exp_5s+ey_exp_5s,yy_exp_5s+ey_exp_5s]
plt.plot(x_exp,yu_exp_5s,color='green',linewidth=lw)
plt.plot(x_exp,y_exp_5s,color='green',linewidth=lw)
plt.plot(x_exp,yl_exp_5s,color='green',linewidth=lw)


#plt.fill_between(x_exp, yl_exp_5s, yu_exp_5s, facecolor='yellow', alpha=0.5)
plt.fill_between(x_exp, yl_exp_5s, yu_exp_5s, alpha=0.5, facecolor='b',edgecolor = 'none')
#plt.show()
plt.axis([0, 40, -100, -0.2])
#plt.xticks([])
ml = MultipleLocator(4)
plt.axes().yaxis.set_minor_locator(ml) 
ftz=12
plt.text(4.0, -18,'$^3$H', fontsize=ftz)
plt.text(7.0, -18,'$^3$He', fontsize=ftz)
plt.text(2.5, -38,'$^4$He', fontsize=ftz)
plt.text(6.0, -38,'$^6$He', fontsize=ftz)
plt.text(9.8, -42,'$^6$Li', fontsize=ftz)
plt.text(12.8, -48,'$^7$Li', fontsize=ftz)
plt.text(15.5,-40,'$^8$He', fontsize=ftz)
plt.text(19.0,-49,'$^8$Li', fontsize=ftz)
plt.text(22.0,-65,'$^8$Be', fontsize=ftz)
plt.text(25.0,-55,'$^9$Li', fontsize=ftz)
plt.text(27.0,-68,'$^9$Be', fontsize=ftz)
plt.text(30.0,-75,'$^{10}$Be', fontsize=ftz)
plt.text(34.0,-75,'$^{10}$B', fontsize=ftz)
savefig('spectrum.pdf')
Reply


Messages In This Thread
help with plt.fill_between - by maria - Jun-16-2017, 11:02 PM
RE: help with plt.fill_between - by Larz60+ - Jun-16-2017, 11:39 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020