Подтвердить что ты не робот

Как установить ширину строки в столбцах ошибок, в 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() будет работать, но проще будет более простая альтернатива.

4b9b3361

Ответ 1

Это основано на ответе @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)

введите описание изображения здесь

Ответ 2

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. Я использовал его для анализа свойств 2D-линий, соответствующих линиям ограничения ошибок, и я обнаружил, что и другие свойства маркера.

Приветствия