Python Forum
error bars with dataframe and pandas - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Data Science (https://python-forum.io/forum-44.html)
+--- Thread: error bars with dataframe and pandas (/thread-26050.html)



error bars with dataframe and pandas - Hucky - Apr-19-2020

Hello everyone,

hope someone can give me an advice.

I have 3 dataframes with different values, each with time (x-values) and y values.
I calculated the average and the standard deviation for the error bars with
mean = dataframe.groupby(['time','y values']).agg({'y values':'mean'}).reset_index()
std = dataframe.groupby(['time','y values']).agg({'y values':'std'}).reset_index()
mean['err'] = std['y values']
Then I tried to plot everything with

fig, (ax1) = plt.subplots(1, 1) 
mean.plot(x='time', y='y values', style='.', color='b', legend=True, label='test', ax=ax1) 
ax1.errorbar(mean.index, mean['time'], yerr=mean['err'])
ax1.legend(loc='lower right', fancybox=True, fontsize=9)
ax1.yaxis.set_label_text("y values")  
ax1.xaxis.set_label_text("Time (h)")
ax1.set_title("test")  
But the error bars are not shown in the right way. I tried it already with mean.plot(...yerr=' '), but the same result. Someone have an idea?


RE: error bars with dataframe and pandas - jefsummers - Apr-22-2020

What are you wanting, and what are you getting?
Check Matplotlib documentation


RE: error bars with dataframe and pandas - Hucky - Apr-24-2020

Hi,

here you find the pictures
error bars should be and actual

the first one is, how the error bars should be and the second and third how they are.
I have absolutely no idea anymore.


RE: error bars with dataframe and pandas - jefsummers - Apr-25-2020

Hard to tell, what is the shape of mean? std?
Have you tried making x and y in the errorbar call just mean and std, and no other arguments? Or mean.values and std.values and no other arguments?


RE: error bars with dataframe and pandas - Hucky - Apr-27-2020

Found the mistake. I did
[pyhton]fig, (ax1) = plt.subplots(1, 1) ....[/[pyhton]]

and then later again
[pyhton]fig, (ax1) = plt.subplots(1, 1) ....[/[pyhton]]

Now I changes the second subplots ax1 to ax2 and everything works fine.
Thank you for your help.