如何在matplotlib中设置错误条上限的线宽?

时间:2011-09-29 17:49:55

标签: python matplotlib

如何更改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()

不幸的是,这会更新大写字母的颜色,但更新大写字母的行宽

结果效果类似于下图中的“胖错误条线/薄帽”: enter image description here

在这种情况下,拥有“胖”酒吧帽会很不错;怎么能在Matplotlib中完成?使用plot()逐个“手动”绘制条形图会起作用,但更简单的替代方法是最好的。

2 个答案:

答案 0 :(得分:31)

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

enter image description here

set_markeredgewidth设置上限线的宽度。

Matplotlib对象具有如此多的属性,通常很难记住给定对象的正确属性。 IPython是一个非常有用的工具,用于内省matplotlib。我用它来分析与错误上限线相对应的二维线的属性,我发现了它和其他标记属性。

干杯

答案 1 :(得分:15)

这是基于@ joaquin的答案,但更简洁一点(如果你只想要没有特殊样式的简单错误上限):

distance = [1,3,7,9]
energy = [10,20,30,40]
sigma = [1,3,2,5]

plt.errorbar(distance, 
    energy, 
    sigma, 
    capsize=5, 
    elinewidth=2,
    markeredgewidth=2)

enter image description here