具有不对称误差条的matplotlib柱状图

11

我需要绘制一个带有不对称误差条的柱状图...

matplotlib.pyplot.bar函数的文档如下:

详情:xerr和yerr被直接传递给errorbar(),因此它们也可以具有2xN的形状,用于独立指定下限和上限误差。

但是,我无法向yerr提供一个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不再支持使用2xN数组来设置yerr了吗? 如果答案是肯定的... 那我该如何画带有非对称误差棒的条形图呢?

感谢您的时间!

1个回答

15

你使用的是哪个版本的matplotlib?

使用最新稳定版1.1.1,你的代码可以完美运行。


我有0.99.3版本...我要编译1.1.1,非常感谢! - Geparada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接