создание панелей ошибок не срезанных в matplotlib с помощью Python - PullRequest
5 голосов
/ 16 мая 2010

Я использую matplotlib в Python для построения линии с ошибками следующим образом:

plt.errorbar(xvalues, up_densities, yerr=ctl_sds, fmt='-^', lw=1.2, markersize=markersize,
         markeredgecolor=up_color, color=up_color, label="My label", clip_on=False)
plt.xticks(xvalues)

Я установил галочки на оси X, используя "xticks". Однако полосы ошибок последней точки в значениях x (т.е. значения xvalues ​​[-1]) обрезаются справа - это означает, что появляется только половина полосы ошибок. Это верно даже с опцией clip_on = False. Как я могу это исправить, чтобы полосы ошибок отображались полностью, даже если их правая сторона технически находится вне значений x -1 [-1]?

спасибо.

Ответы [ 2 ]

12 голосов
/ 18 мая 2010

В matplotlib большая часть подробного контроля должна выполняться через Исполнителей. Я думаю, что это должно делать то, что вы хотите:

import matplotlib.pyplot as plt
from random import uniform as r

x = range(10)
e = plt.errorbar(x, [r(2,10) for i in x], [r(.1,1) for i in x], capsize=8, color='r')

for b in e[1]:
    b.set_clip_on(False)

plt.show()

enter image description here

Проблема, с которой вы столкнулись, заключается в том, что ключевое слово clip_on использовалось для управления маркерами, а не панелями ошибок. Чтобы управлять панелями ошибок, plt.errorbar возвращает кортеж, где второй элемент представляет собой список панелей ошибок. Итак, я просматриваю список и отключаю вырезку для каждой панели ошибок.

1 голос
/ 16 мая 2010

Это то, что вы имеете в виду?Вы хотите переопределить горизонтальные пределы вашего графика?

plt.errorbar(range(5), [3,2,4,5,1], yerr=[0.1,0.2,0.3,0.4,0.5])
ax = plt.gca()
ax.set_xlim([-0.5,4.5])

Matplotlib errorbar http://up.stevetjoa.com/errorbar.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...