下面水平条形图中间的错误黑线非常长,即使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])
绘制此图的代码是:
pl.barh(ind,means,align='center',xerr=stds,ecolor='k', alpha=0.3)
为什么会这样?
答案 0 :(得分:4)
你的情节中的错误栏是正确的。以此为例最长的一个,值9.95380202e-01
= 0.995380202
≈1.0
。当您将 N ×1数组值传递给xerr
时,将值绘制为±值,即它们将跨越两倍的长度。因此,值xerr
的{{1}}将跨越1.0
单位,从2.0
到width - 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()