Ich zeichne ein Histogramm mit matplotlib in Python und möchte eine Linie zeichnen, die den Durchschnitt des Datensatzes darstellt und dem Histogramm als gepunktete Linie überlagert ist (oder vielleicht auch eine andere Farbe). Irgendwelche Ideen, wie man eine Linie zeichnet, die dem Histogramm überlagert ist?
Ich verwende den Befehl plot (), bin mir aber nicht sicher, wie ich eine vertikale Linie zeichnen soll (dh welchen Wert soll ich für die y-Achse angeben?
Vielen Dank!
python
matplotlib
axis
user308827
quelle
quelle
Dies ist ein altes Thema und eine kleine Ergänzung, aber eine Sache, die mir oft gefallen hat, ist, neben der Linie auch den Mittelwert zu zeichnen:
import numpy as np import matplotlib.pyplot as plt np.random.seed(6789) x = np.random.gamma(4, 0.5, 1000) result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65) plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1) min_ylim, max_ylim = plt.ylim() plt.text(x.mean()*1.1, max_ylim*0.9, 'Mean: {:.2f}'.format(x.mean()))
Welches ergibt folgendes Ergebnis:
quelle
Ich würde mir den größten Wert in Ihrem Datensatz ansehen (dh die Histogramm-Bin-Werte), diesen Wert mit einer Zahl größer als 1 (z. B. 1,5) multiplizieren und damit den Wert der y-Achse definieren. Auf diese Weise wird es unabhängig von den Werten im Histogramm über Ihrem Histogramm angezeigt.
quelle