我需要绘制一个带有不对称误差条的条形图......
matplotlib.pyplot.bar函数的文档说:
详细信息:xerr和yerr直接传递给 errorbar(),因此它们也可以具有2xN的独立形状 低级和高级错误的规范。
但是,我不能给一个2xN数组...
import numpy as np
import matplotlib.pyplot as plt
plt.bar(xrange(5), [2,5,3,4,7], yerr=[[1,4,2,3,6],[4,10,6,8,14]]) #DO NOT work!
并告诉我以下错误:
Traceback (most recent call last):
File "bar_stacked.py", line 9, in <module>
plt.bar(xrange(5), [2,5,3,4,7], yerr=[[1,4,2,3,6],[4,10,6,8,14]])
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 1742, in bar
ret = ax.bar(left, height, width, bottom, color, edgecolor, linewidth, yerr, xerr, ecolor, capsize, align, orientation, log, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 4253, in bar
"incompatible sizes: bar() argument 'yerr' must be len(%s) or scalar" % nbars)
ValueError: incompatible sizes: bar() argument 'yerr' must be len(5) or scalar
但是,而是这个功能:
import numpy as np
import matplotlib.pyplot as plt
plt.errorbar(xrange(5), [2,5,3,4,7], yerr=[[1,4,2,3,6],[4,10,6,8,14]])
工作正常。
matplotlib.pyplot.bar是否不再支持yerr的2xN数组? 如果回答是肯定的...我如何绘制具有不对称误差条的条形图?
感谢您的时间!
答案 0 :(得分:10)
您使用的是哪个版本的matplotlib?
使用1.1.1(最新的稳定版),您的代码可以完美运行。