Как отобразить дополнительные значения на гистограмме в виде сегментов в matplotlib? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть гистограмма в Python, на которой я хочу построить некоторые другие значения (представляющие, например, средние значения) как сегменты.

Рассмотрим следующий код, который строит простую гистограмму:

import matplotlib.pyplot as plt

h = plt.bar([0,1,2], [4,5,6],width=0.5)
plt.legend((h,), ("vals",))
plt.show()

Это графическое изображение:

following image

Для каждого бара у меня есть среднее значение, которое я хочу построить на графикесоответствующий бар как сегмент.Требуемый график выглядит примерно так:

enter image description here

Как можно изобразить значения по барам как сегменты в matplotlib?

1 Ответ

2 голосов
/ 17 апреля 2019

Как насчет этого?

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'])

enter image description here

...