#python #matplotlib #bar-chart
#питон #matplotlib #гистограмма
Вопрос:
У меня есть гистограмма на Python, на которой я хочу отобразить некоторые другие значения (представляющие, например, средние значения) в виде сегментов.
Рассмотрим следующий код, который отображает простую гистограмму:
import matplotlib.pyplot as plt
h = plt.bar([0,1,2], [4,5,6],width=0.5)
plt.legend((h,), ("vals",))
plt.show()
Это отображает следующее изображение:
Для каждого бара у меня есть среднее значение, которое я хочу отобразить на соответствующем баре в виде сегмента. Желаемый график выглядит примерно так:
Как я могу отображать значения по столбцам в виде сегментов в matplotlib
?
Ответ №1:
Как насчет этого?
import matplotlib.pyplot as plt
indices = [0, 1, 2]
values = [4, 5, 6]
averages = [3.5, 5.5, 4.75]
pad = 0.3
fig, ax = plt.subplots()
b = ax.bar(indices, values, width=0.5, label='vals')
for index, average in zip(indices, averages):
l = ax.plot([index - pad, index pad], [average, average], color='red')
ax.legend([b, l[0]], ['vals', 'avg'])