[英]How to plot errorbar in line chart from dataframes
我有兩個數據框,df_avg 和 df_sem,它們分別包含平均值和平均值的標准誤差。 例如:
KPCmb1 KPCmb1IA KPCmb2 KPCmb3 KPCmb4 KPCmb5 KPCmb6
temp
19.99 15.185905 24.954296 22.610052 29.249107 26.151815 34.374257 36.589218
20.08 15.198452 24.998227 22.615342 29.229325 26.187794 34.343738 36.596730
20.23 15.208917 25.055061 22.647499 29.234424 26.193382 34.363549 36.580033
20.47 15.244485 25.092773 22.691421 29.206816 26.202425 34.337385 36.640839
20.62 15.270921 25.145798 22.720752 29.217821 26.235101 34.364162 36.600030
和
KPCmb1 KPCmb1IA KPCmb2 KPCmb3 KPCmb4 KPCmb5 KPCmb6
temp
19.99 0.342735 0.983424 0.131502 0.893494 1.223318 0.536450 0.988185
20.08 0.347366 0.983732 0.136239 0.898661 1.230763 0.534779 0.993970
20.23 0.348641 0.981614 0.134729 0.898790 1.227567 0.529240 1.005609
20.47 0.350937 0.993973 0.138411 0.881142 1.237749 0.526841 0.991591
20.62 0.345863 0.983064 0.132934 0.883863 1.234746 0.533048 0.987520
我想 plot 使用 temp 作為 x 軸和 dataframe 列作為 y 軸的折線圖。 我還想使用 df_sem dataframe 為每一行提供誤差線(注意兩個數據幀之間的列名相同)。
我可以使用以下代碼實現此目的: df_avg.plot(yerr=df_sem)
,但這不允許我更改 plot 的許多方面,例如 DPI、標簽等。
因此,我嘗試使用以下代碼作為替代方案來制作 plot:
plt.figure()
x = df_avg.index
y = df_avg
plt.errorbar(x,y,yerr=df_sem)
plt.show()
但這給了我錯誤: ValueError: shape mismatch: objects cannot be broadcast to a single shape
我如何 go 制作與 pandas 繪圖和 matplotlib 繪圖相同的圖表?
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.