如何在matplotlib中绘制半误差线?

4

我的x轴上只有几个值,所以我的数据点的误差条互相竞争。我不使用Excel,而是使用Python,并想知道如何仅绘制误差条的上半部分或下半部分,以便更容易阅读。设置uplims = True对我没有好处,误差条的下半部分仍然可见。


2
你看过这些例子吗?(http://matplotlib.org/1.4.2/examples/pylab_examples/errorbar_limits.html)顺便问一下,半个误差棒是什么意思?你是指高斯分布在另一侧具有对称误差吗?数据点是一个上限/下限,并且在一侧存在某种不确定性吗? - Carsten
是的,我已经检查过了 - 半个误差线意味着根据我的误差条是对称的,我只想要顶部或底部的一部分。数据是散点,我只有5个x轴类别,所以误差会相互影响。我想只显示上限或下限误差。我尝试将uplims参数从默认值False更改为True,以及将lolims参数更改为True,但无论如何,我仍然得到误差条的另一半。 - student998
这个回答解决了你的问题吗?如何使用pyplot.bar仅绘制正误差条? - Mr. T
1个回答

10
当您使用关键字参数(例如yerr)将误差栏信息传递给绘图函数时,可以分别指定正误差栏,这些误差栏应该是与您的数据长度相同的可迭代对象。例如,如果您的散点图中有3个点,其x和y值分别为xdataydata,那么以下代码将为每个点提供高度为5的正误差栏:
ax.bar(xdata, ydata, yerr=[(0,0,0), (5,5,5)])

相反,如果你只想要负误差线,可以这样做:

ax.bar(xdata, ydata, yerr=[(5,5,5), (0,0,0)])

3
如果这个答案解决了你的问题,你应该将其标记为正确答案。 - Jeef

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