条形图显示奇怪的错误行

时间:2013-08-29 14:33:46

标签: python matplotlib

下面水平条形图中间的错误黑线非常长,即使stds是:

array([  1.14428879e-01,   3.38164768e-01,   5.58287430e-01,
         7.77484276e-01,   9.95380202e-01,   1.58493526e-08,
         8.69720905e-02,   8.64435493e-02,   5.12989176e-03])

enter image description here

绘制此图的代码是:

  pl.barh(ind,means,align='center',xerr=stds,ecolor='k', alpha=0.3)

为什么会这样?

1 个答案:

答案 0 :(得分:4)

你的情节中的错误栏是正确的。以此为例最长的一个,值9.95380202e-01 = 0.9953802021.0。当您将 N ×1数组值传递给xerr时,将值绘制为±值,即它们将跨越两倍的长度。因此,值xerr的{​​{1}}将跨越1.0单位,从2.0width - 1.0。为避免这种情况,您可以创建一个2× N 数组,其中一行仅包含零,请参见下面的示例。


来自pyplot.bar()的文档(同样适用于width + 1.0):

  

细节:xerr和yerr直接传递给errorbar(),所以他们可以   对于下部和上部的独立规格也具有2xN的形状   错误。

来自pyplot.errorbar()的文档:

  

xerr / yerr:[标量| N,Nx1或2xN阵列式]

     

如果是标量数,len(N)类数组对象,或类似Nx1数组   对象,错误栏以相对于数据的+/-值绘制。

     

如果形状序列为2xN,则在-row1和+ row2处绘制错误栏   相对于数据。


显示错误栏的不同“组合”的示例:

pyplot.barh()

Different combinations of xerr