2016-10-27 2 views
1

Я хотел бы установить кастрюлю для вертикальных линий строки ошибок в «round». Например, следующий код создает несколько точек с errorbars:Изменить capstyle для errorbars в matplotlib

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
plt.plot([1,2,3], [2,3,4], marker='o', linestyle='None') 
plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], fmt=None, linewidth=3, capsize=0) 
plt.xlim([0,4]) 
plt.show() 

Для нормальных линий, я могу установить стиль крышки в rcParams с помощью этого:

plt.rcParams['lines.dash_capstyle'] = 'round' 

и я нашел несколько хороших примеров, как чтобы получить круглые capstyles для клещей:

for i in ax.xaxis.get_ticklines(): i._marker._capstyle = 'round' 

, но я не могу найти подобный путь для errorbars.

ответ

1
plotline, cap, barlinecols =\ 
     plt.errorbar([1,2,3], [2,3,4], yerr=[1,1,1], fmt=None, linewidth=3, capsize=0) 

plt.errorbar возвращает 3 объекта. plotline и cap являются Line2D объектами, которые вы можете сделать:

plotline.set_capstyle('round') 
cap.set_capstyle('round') 

barlinecols является LineCollection объекта. Однако текущая версия (matplotlib 2.0) не поддерживает изменение capstyle в LineCollection объектах (см.: https://github.com/matplotlib/matplotlib/issues/8277). Но похоже, что это будет реализовано в следующей версии.

Смежные вопросы