Категориальный график погрешностей по оси X в matplotlib

Я хотел бы построить полосы ошибок с категориальной переменной X. Планки погрешностей (верхняя и нижняя) относятся только к значениям Y.

Например, код

import numpy as np
import matplotlib.pyplot as plt

x = ["4", "10", "50"]
y = [3, 2, 1]
yerr = np.matrix([[1.5, 1.1, 0.9], [1.3, 1.2, 0.8]])

fig, ax = plt.subplots(1, 1)
ax.errorbar(x, y, yerr=yerr)
plt.show()
plt.close()

дает следующую ошибку:

ValueError: In safezip, len(args[0])=3 but len(args[1])=1

person Bruno    schedule 25.03.2018    source источник


Ответы (1)


Ошибка, которую вы получаете, не имеет ничего общего с категориальной осью.

Вы просто не можете использовать матрицу. Используйте массив numpy,

yerr = np.array([[1.5, 1.1, 0.9], [1.3, 1.2, 0.8]])

или просто список, здесь нет необходимости использовать numpy,

yerr = [[1.5, 1.1, 0.9], [1.3, 1.2, 0.8]]
person ImportanceOfBeingErnest    schedule 25.03.2018
comment
Да, позже я понял, что это не было связано с категориальной осью. Это простой пример. В реальном коде я должен использовать numpy. Вот почему он у меня был там. - person Bruno; 25.03.2018