У меня есть два кадра данных, 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
Я хочу построить линейную диаграмму, используя temp в качестве оси X и столбцы данных в качестве оси Y. Я также хочу использовать фрейм данных df_sem для предоставления строк ошибок для каждой строки (обратите внимание, что имена столбцов одинаковы между двумя фреймами данных).
Я могу добиться этого с помощью следующего кода: df_avg.plot(yerr=df_sem)
, но это не позволяет мне изменять многие аспекты графика, такие как DPI, метки и тому подобное.
Поэтому я попытался создать график, используя в качестве альтернативы следующий код:
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?
Спасибо!