Dessin de la ligne moyenne dans l'histogramme (matplotlib)

je dessine un histogramme en utilisant matplotlib en python, et je voudrais dessiner une ligne représentant la moyenne de l'ensemble de données, superposée sur l'histogramme comme une ligne pointillée (ou peut-être une autre couleur ferait aussi). Des idées sur la façon de tracer une ligne superposée sur l'histogramme?

j'utilise la commande plot (), mais je ne sais pas comment tracer une ligne verticale (c.-à-d. quelle valeur dois-je donner pour l'axe des y?

merci!

32
demandé sur user308827 2013-04-24 03:35:56

2 réponses

Vous pouvez utiliser le plot ou vlines pour tracer une ligne verticale, mais pour tracer une ligne verticale à partir du bas vers le haut de l'axe des y, axvline est probablement la fonction la plus simple à utiliser. Voici un exemple:

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>

Résultat: plot

79
répondu Warren Weckesser 2018-03-28 19:39:45

j'examinerais la plus grande valeur de votre ensemble de données (c.-à-d. les valeurs de la série d'histogrammes). multipliez cette valeur par un nombre supérieur à 1 (disons 1,5) et utilisez-le pour définir la valeur de l'axe Y. De cette façon, il apparaîtra au-dessus de votre histogramme, quelles que soient les valeurs de l'histogramme.

1
répondu smitec 2013-04-23 23:38:31