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

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

введите описание изображения здесь