Рисование средней линии в гистограмме (matplotlib)

Я рисую гистограмму, используя matplotlib в python, и хотел бы нарисовать линию, представляющую среднее значение набора данных, наложенное на гистограмму как пунктирная линия (или, возможно, какой-то другой цвет тоже). Есть идеи, как нарисовать линию, наложенную на гистограмму?

Я использую команду plot (), но не уверен, как нарисовать вертикальную линию (т. е. какое значение я должен дать для оси y?

спасибо!

2 ответов


можно использовать plot или vlines чтобы нарисовать вертикальную линию, но нарисовать вертикальную линию снизу вверх по оси y,axvline, вероятно, самая простая функция для использования. Вот пример:

In [80]: import numpy as np

In [81]: import matplotlib.pyplot as plt

In [82]: np.random.seed(6789)

In [83]: x = np.random.gamma(4, 0.5, 1000)

In [84]: result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)

In [85]: plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)
Out[85]: <matplotlib.lines.Line2D at 0x119758828>

результат: plot


Я бы посмотрел на наибольшее значение в вашем наборе данных (т. е. значения Бина гистограммы), умножьте это значение на число больше 1 (скажем, 1.5) и используйте его для определения значения оси Y. Таким образом, он будет отображаться над вашей гистограммой независимо от значений внутри гистограммы.