昨日,Python草堂群的一位网友问了一个问题:
如下图,怎样去掉误差棒在条形图的里面的那一部分,即仅绘制正误差棒,不绘制负误差棒。
matplotlib 的 Axes 对象有一个 errorbar
方法,
Axes.errorbar(self, x, y,
yerr=None, xerr=None,
fmt='', ecolor=None,
elinewidth=None,
capsize=None,
barsabove=False,
lolims=False, uplims=False,
xlolims=False, xuplims=False,
errorevery=1, capthick=None, *,
data=None, **kwargs)
首先想到的是设置 lolims
参数,但绘制的图形如下图:
误差棒带有一个箭头,这不是他想要的。
后来,琢磨了一下 errorbar
函数,其实有一个简单的方法可以实现:
示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 2, 1, 2, 1]
y_errormin = [0, 0, 0, 0, 0]
y_errormax = [0.2, 0.4, 0.6, 0.4, 0.2]
x_error = 0.5
y_error = [y_errormin, y_errormax]
plt.bar(x, y)
plt.errorbar(x, y,
yerr=y_error,
capsize = 8,
fmt='o', color="r")
plt.show()
有任何问题,欢迎到 Python 草堂QQ群: 457079928 讨论交流,共同进步!