我尝试使用pandas.plot(type=bar)
来绘制一个有错误的条形图。我为每个样本设置了一些变量,每个样本属于一个组。玩具示例:
df=pd.DataFrame({
'U': [ 1, 2, 3, 4 ],
'V': [ 5, 6, 7, 8 ],
'grp': [ 1, 1, 2, 2 ] })
我为每组创建了平均值和标准差,如下所示:
uv_agg = df.groupby('grp').agg([mean, std])
生成的表具有格式
U V
mean std mean std
grp
1
2
我可以使用
uv_agg.plot( kind='bar', y=('U','mean') ) # works!
但当我用误差线
uv_agg.plot( kind='bar', y=('U','mean'), yerr=('U','std') )
我得到
ConversionError: Failed to convert value(s) to axis units: array(['U', 'std'], dtype='<U6')
我试过逐步通过情节代码,但不能让它工作。
1条答案
按热度按时间qqrboqgw1#
参数
y
接受“标签、位置或标签、位置列表”,这就是y=('U','mean')
工作的原因。然而,参数yerr
接受“ Dataframe 、系列、类似数组、dict和str”,因此(例如)您可以使用uv_agg['U']['std']
:您可以在Panda's plotting docs和使用误差线绘图中找到更多信息。