Матрицы ошибок Matplotlib отсутствуют

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

import matplotlib.pyplot as plt
import numpy as np
import random

x = np.linspace(1,2,10)
y = np.linspace(2,3,10)
err = [random.uniform(0,1) for i in range(10)]

plt.errorbar(x, y,
       yerr=err,
       marker='o',
       color='k',
       ecolor='k',
       markerfacecolor='g',
       label="series 2",
       capsize=5,
       linestyle='None')
plt.show()

Проблема заключается в том, что выведенный сюжет не содержит крышек вообще! enter image description here

Для чего это стоит, я на Ubuntu 13.04, Python 2.7.5 | Anaconda 1.6.1 (64-бит) | и Matplotlib 1.2.1.

Может ли это быть скрытый rcparam, который необходимо перезаписать?

Ответ 2

Это связано с rcParams в matplotlib. Чтобы решить эту проблему, добавьте следующие строки в начале вашего скрипта:

import matplotlib
matplotlib.rcParams.update({'errorbar.capsize': 2})

Это также работает с plt.bar().

Ответ 3

Небольшое упрощение ответа astromax:

plt.errorbar(x,y, yerr=err, capsize=20, elinewidth=3, markeredgewidth=10)

Кажется, что каким-то образом markeredgewidth по умолчанию иногда равен 0.