如何设置误差线帽的线宽
如何改变Matplotlib中误差条帽子的线宽?
我试过以下代码:
(_, caplines, _) = matplotlib.pyplot.errorbar(
data['distance'], data['energy'], yerr=data['energy sigma'],
capsize=10, elinewidth=3)
for capline in caplines:
capline.set_linewidth(10)
capline.set_color('red')
pp.draw()
可惜的是,这段代码只更新了帽子的颜色,但并没有改变帽子的线宽!
最终效果就像下面这张图片中的“粗误差条线/细帽子”一样:

如果帽子也能变得“粗一些”就好了;那么在Matplotlib中该怎么做呢?用plot()
手动一个一个画帽子是可以的,但如果有更简单的方法就更好了。
2 个回答
41
EOL,你离答案很近了……
distance = [1,3,7,9]
energy = [10,20,30,40]
sigma = [1,3,2,5]
(_, caps, _) = plt.errorbar(distance, energy, sigma, capsize=20, elinewidth=3)
for cap in caps:
cap.set_color('red')
cap.set_markeredgewidth(10)
plt.show
set_markeredgewidth
用来设置标记边缘线的宽度。
Matplotlib 这个库里的对象有很多属性,很多时候我们很难记住每个对象的正确属性。IPython 是一个非常有用的工具,可以帮助我们查看 Matplotlib 的内容。我用它来分析与错误边缘线相关的 2D 线的属性,发现了这些和其他标记的属性。
干杯!