So right now, I'm trying to add error bars to an existing graph but I keep running into some errors when I run my code. Below is the code when it works (without the error bars) with my additions commented out. The file that the information is being pulled from contains 4 columns, with the fourth column being the vertical error. When I run the code with the commented out lines included, I get the following error
Traceback (most recent call last):
File "39.py", line 37, in <module>
plot_graph()
File "39.py", line 29, in plot_graph
plt.errorbar(x1,y1, yerr = z1, marker = 'none', linestyle = 'none')
File "/Users/Bashe/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/pyplot.py", line 2697, in errorbar
errorevery=errorevery, capthick=capthick, **kwargs)
File "/Users/Bashe/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/axes.py", line 5758, in errorbar
in cbook.safezip(y, yerr)]
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Here is the code I have. Hopefully someone can let me know what's causing this problem.
import os
import pylab as plt
def plot_graph():
file='Graph.txt'
x = []
y = []
#z = []
x1 = []
y1 = []
#z1 = []
t = []
t1 = []
for dirpath,dirs,files in os.walk('/Users/Bashe/Desktop/121210 p2/'):
if file in files:
infile = open(os.path.join(dirpath, "Graph.txt"), "r")
for columns in (raw.strip().split() for raw in infile):
t = columns[0]
x = columns[1]
y = columns[2]
#z = columns[3]
x1.append(str(x))
y1.append(str(y))
#z1.append(str(z))
t1.append(str(t))
savepath = os.path.join(dirpath, 'Mean vs Temperature for %s.png' %(t1[0]))
plt.plot(x1,y1, marker ='o', linestyle = '--')
#plt.errorbar(x1,y1, yerr = z1, marker = 'none', linestyle = 'none')
plt.xlabel('Temperature')
plt.ylabel('Mean')
plt.title('Mean vs Temperature for %s probe concentration' %(t1[0]))
plt.savefig(savepath)
#plt.show()
infile.close()
strobjects. Instead you should do:x1.append(float(x)), etc.matplotlibis not expectingstrobjects where you are giving itstrobjects.