matplotlib.pyplot.hist#

matplotlib.pyplot.hist(x, bins=None, *, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, data=None, **kwargs)[Quelle]#

Berechnet und plottet ein Histogramm.

Diese Methode verwendet numpy.histogram, um die Daten in x zu klassifizieren und die Anzahl der Werte in jeder Klasse zu zählen. Anschließend wird die Verteilung entweder als BarContainer oder Polygon gezeichnet. Die Parameter bins, range, density und weights werden an numpy.histogram weitergeleitet.

Wenn die Daten bereits klassifiziert und gezählt wurden, verwenden Sie bar oder stairs, um die Verteilung zu zeichnen.

counts, bins = np.histogram(x)
plt.stairs(counts, bins)

Alternativ können Sie vorab berechnete Klassen und Zählungen mit hist() plotten, indem Sie jede Klasse als einzelnen Punkt mit einem Gewicht behandeln, das seiner Zählung entspricht.

plt.hist(bins[:-1], bins, weights=counts)

Die Eingabe x kann ein einzelnes Array, eine Liste von Datensätzen potenziell unterschiedlicher Längen ([x0, x1, ...]) oder ein 2D-ndarray sein, bei dem jede Spalte ein Datensatz ist. Beachten Sie, dass die ndarray-Form transponiert im Vergleich zur Listenform ist. Wenn die Eingabe ein Array ist, ist der Rückgabewert ein Tupel (n, bins, patches); wenn die Eingabe eine Sequenz von Arrays ist, ist der Rückgabewert ein Tupel ([n0, n1, ...], bins, [patches0, patches1, ...]).

Maskierte Arrays werden nicht unterstützt.

Parameter:
x(n,) Array oder Sequenz von (n,) Arrays

Eingabewerte, dies kann entweder ein einzelnes Array oder eine Sequenz von Arrays sein, die nicht die gleiche Länge haben müssen.

binsint oder Sequenz oder str, Standard: rcParams["hist.bins"] (Standard: 10)

Wenn bins eine ganze Zahl ist, definiert sie die Anzahl der gleichbreiten Klassen im Bereich.

Wenn bins eine Sequenz ist, definiert sie die Klassengrenzen, einschließlich der linken Grenze der ersten Klasse und der rechten Grenze der letzten Klasse; in diesem Fall können die Klassen ungleich beabstandet sein. Alle außer der letzten (rechtesten) Klasse sind halboffen. Das heißt, wenn bins

[1, 2, 3, 4]

dann ist die erste Klasse [1, 2) (einschließlich 1, aber ausschließend 2) und die zweite [2, 3). Die letzte Klasse ist jedoch [3, 4], die 4 *einschließt*.

Wenn bins ein String ist, ist es eine der von numpy.histogram_bin_edges unterstützten Klassifizierungsstrategien: 'auto', 'fd', 'doane', 'scott', 'stone', 'rice', 'sturges' oder 'sqrt'.

rangeTupel oder None, Standard: None

Der untere und obere Bereich der Klassen. Ausreißer nach unten und oben werden ignoriert. Wenn nicht angegeben, ist range (x.min(), x.max()). Der Bereich hat keine Auswirkung, wenn bins eine Sequenz ist.

Wenn bins eine Sequenz ist oder range angegeben ist, basiert die automatische Skalierung auf dem angegebenen Klassengrenzwert anstelle des Bereichs von x.

densitybool, Standard: False

Wenn True, zeichne und gib eine Wahrscheinlichkeitsdichte zurück: Jede Klasse zeigt die rohe Anzahl der Klasse geteilt durch die Gesamtzahl der Zählungen *und die Klassenbreite* (density = counts / (sum(counts) * np.diff(bins))) an, sodass die Fläche unter dem Histogramm zu 1 integriert (np.sum(density * np.diff(bins)) == 1).

Wenn stacked ebenfalls True ist, wird die Summe der Histogramme auf 1 normiert.

weights(n,) Array-ähnlich oder None, Standard: None

Ein Array von Gewichten mit der gleichen Form wie x. Jeder Wert in x trägt nur sein zugehöriges Gewicht zur Klassenzählung bei (statt 1). Wenn density True ist, werden die Gewichte normiert, sodass das Integral der Dichte über den Bereich 1 bleibt.

cumulativebool oder -1, Standard: False

Wenn True, wird ein Histogramm berechnet, bei dem jede Klasse die Zählungen in dieser Klasse und allen Klassen für kleinere Werte angibt. Die letzte Klasse gibt die Gesamtzahl der Datenpunkte an.

Wenn density ebenfalls True ist, wird das Histogramm so normiert, dass die letzte Klasse 1 ergibt.

Wenn cumulative eine Zahl kleiner als 0 ist (z. B. -1), wird die Richtung der Akkumulation umgekehrt. In diesem Fall, wenn density ebenfalls True ist, wird das Histogramm so normiert, dass die erste Klasse 1 ergibt.

bottomArray-ähnlich oder float, Standard: 0

Position der Unterseite jeder Klasse, d.h. Klassen werden von bottom bis bottom + hist(x, bins) gezeichnet. Wenn ein Skalar, wird die Unterseite jeder Klasse um denselben Betrag verschoben. Wenn ein Array, wird jede Klasse unabhängig verschoben und die Länge von bottom muss mit der Anzahl der Klassen übereinstimmen. Wenn None, ist der Standardwert 0.

histtype{'bar', 'barstacked', 'step', 'stepfilled'}, Standard: 'bar'

Der Typ des zu zeichnenden Histogramms.

  • 'bar' ist ein traditionelles Histogramm vom Balkentyp. Wenn mehrere Daten gegeben sind, werden die Balken nebeneinander angeordnet.

  • 'barstacked' ist ein Histogramm vom Balkentyp, bei dem mehrere Daten übereinander gestapelt werden.

  • 'step' erzeugt einen Linienplot, der standardmäßig ungefüllt ist.

  • 'stepfilled' erzeugt einen Linienplot, der standardmäßig gefüllt ist.

align{'left', 'mid', 'right'}, Standard: 'mid'

Die horizontale Ausrichtung der Histogrammbalken.

  • 'left': Balken werden auf den linken Klassengrenzen zentriert.

  • 'mid': Balken werden zwischen den Klassengrenzen zentriert.

  • 'right': Balken werden auf den rechten Klassengrenzen zentriert.

orientation{'vertical', 'horizontal'}, Standard: 'vertical'

Wenn 'horizontal', wird barh für Balken-Histogramme verwendet und das bottom-Schlüsselwortargument sind die linken Grenzen.

rwidthfloat oder None, Standard: None

Die relative Breite der Balken als Bruchteil der Klassenbreite. Wenn None, wird die Breite automatisch berechnet.

Ignoriert, wenn histtype 'step' oder 'stepfilled' ist.

logbool, Standard: False

Wenn True, wird die Histogrammachse auf eine logarithmische Skala gesetzt.

colorFarbe oder Liste von Farben oder None, Standard: None

Farbe oder Sequenz von Farben, eine pro Datensatz. Standard (None) verwendet die Standard-Linienfarbsequenz.

labelstr oder Liste von str, optional

String oder Sequenz von Strings zur Übereinstimmung mehrerer Datensätze. Balkendiagramme erzeugen mehrere Patches pro Datensatz, aber nur der erste erhält das Label, damit legend wie erwartet funktioniert.

stackedbool, Standard: False

Wenn True, werden mehrere Daten übereinander gestapelt. Wenn False, werden mehrere Daten nebeneinander angeordnet, wenn histtype 'bar' ist, oder übereinander, wenn histtype 'step' ist.

Gibt zurück:
nArray oder Liste von Arrays

Die Werte der Histogrammklassen. Siehe density und weights für eine Beschreibung der möglichen Semantiken. Wenn die Eingabe x ein Array ist, dann ist dies ein Array der Länge nbins. Wenn die Eingabe eine Sequenz von Arrays [data1, data2, ...] ist, dann ist dies eine Liste von Arrays mit den Werten der Histogramme für jedes der Arrays in der gleichen Reihenfolge. Der Datentyp des Arrays n (oder seiner Element-Arrays) ist immer float, auch wenn keine Gewichtung oder Normalisierung verwendet wird.

binsArray

Die Ränder der Klassen. Länge nbins + 1 (nbins linke Ränder und rechter Rand der letzten Klasse). Immer ein einzelnes Array, auch wenn mehrere Datensätze übergeben werden.

patchesBarContainer oder Liste eines einzelnen Polygon oder Liste solcher Objekte

Container von einzelnen Künstlern, die zur Erstellung des Histogramms verwendet werden, oder Liste solcher Container, wenn mehrere Eingabedatensätze vorhanden sind.

Andere Parameter:
dataindizierbares Objekt, optional

Wenn angegeben, akzeptieren die folgenden Parameter auch einen String s, der als data[s] interpretiert wird, wenn s ein Schlüssel in data ist

x, weights

**kwargs

Patch-Eigenschaften. Die folgenden Eigenschaften akzeptieren zusätzlich eine Sequenz von Werten, die den Datensätzen in x entsprechen: edgecolor, facecolor, linewidth, linestyle, hatch.

Hinzugefügt in Version 3.10: Ermöglicht Sequenzen von Werten in den oben aufgeführten Patch-Eigenschaften.

Siehe auch

hist2d

2D-Histogramm mit rechteckigen Klassen

hexbin

2D-Histogramm mit hexagonalen Bins

stairs

Vorab berechnetes Histogramm plotten

bar

Vorab berechnetes Histogramm plotten

Anmerkungen

Hinweis

Dies ist der pyplot-Wrapper für axes.Axes.hist.

Bei einer großen Anzahl von Klassen (>1000) kann das Plotten durch die Verwendung von stairs zum Plotten eines vorab berechneten Histogramms (plt.stairs(*np.histogram(data))) oder durch Setzen von histtype auf 'step' oder 'stepfilled' anstelle von 'bar' oder 'barstacked' erheblich beschleunigt werden.

Beispiele, die matplotlib.pyplot.hist verwenden#

Animiertes Histogramm

Animiertes Histogramm

Text und Mathtext mit pyplot

Text und Mathtext mit pyplot

Histogramme

Histogramme

Kumulative Verteilungen

Kumulative Verteilungen

Demo der verschiedenen histtype-Einstellungen der Histogrammfunktion

Demo der verschiedenen histtype-Einstellungen der Histogrammfunktion

Die Histogrammfunktion (hist) mit mehreren Datensätzen

Die Histogrammfunktion (hist) mit mehreren Datensätzen

Histogramm-Bins, Dichte und Gewicht

Histogramm-Bins, Dichte und Gewicht

SVG-Histogramm

SVG-Histogramm

Bild-Tutorial

Bild-Tutorial

Pyplot-Tutorial

Pyplot-Tutorial