[英]Using pandas to plot barplots with error bars
我正在尝试从这样的 DataFrame 生成条形图:
Pre Post
Measure1 0.4 1.9
这些值是我从别处计算的中值,我也有它们的方差和标准偏差(以及标准误差)。 我想将结果绘制为带有正确误差条的条形图,但为yerr
指定多个错误值会产生异常:
# Data is a DataFrame instance
fig = data.plot(kind="bar", yerr=[0.1, 0.3])
[...]
ValueError: In safezip, len(args[0])=1 but len(args[1])=2
如果我指定一个值(不正确),一切都很好。 我怎样才能真正为每一列提供正确的误差条?
无论出于何种原因,接受的答案对我来说都不起作用(比较我在那里的评论)。 我正在使用以下版本
版本: Python 3.7.6 (anaconda),mpl:3.1.3,pd:1.0.1,np:1.18.1
然而,有效的是对这个问题的修改。 这个问题的讨论也指向了不同版本和不对称误差条绘图可能存在一些问题的方向。
代码围绕数据帧列的平均值绘制从最小值到最大值的非对称误差线。
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
print('Versions, mpl: {:}, pd: {:}, np: {:}'.format(mpl.__version__, pd.__version__, np.__version__))
df = pd.DataFrame()
df['a'] = [1, 1, 2, 3, 3]
df['b'] = [0.5, 0.5, 2, 3, 4]
print(df)
plt.bar(np.arange(df.shape[1]), df.mean(), yerr=[df.mean()-df.min(), df.max()-df.mean()], capsize=6)
plt.grid()
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.