matplotlib.axes.Axes.hist#

Axes.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 in Bins einzuteilen und die Anzahl der Werte in jedem Bin 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 in Bins eingeteilt 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 Bins und Zählungen mit hist() zeichnen, indem Sie jeden Bin 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 im Vergleich zur Listenform transponiert 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 nimmt entweder ein einzelnes Array oder eine Sequenz von Arrays, die nicht die gleiche Länge haben müssen.

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

Wenn bins eine ganze Zahl ist, definiert es die Anzahl der gleich breiten Bins im Bereich.

Wenn bins eine Sequenz ist, definiert sie die Bin-Kanten, einschließlich der linken Kante des ersten Bins und der rechten Kante des letzten Bins; in diesem Fall können die Bins ungleichmäßig verteilt sein. Alle außer dem letzten (rechtesten) Bin sind halboffen. Das heißt, wenn bins

[1, 2, 3, 4]

dann ist der erste Bin [1, 2) (einschließlich 1, aber ausschließend 2) und der zweite [2, 3). Der letzte Bin ist jedoch [3, 4], der 4 *einschließlich*.

Wenn bins ein String ist, ist es eine der Binning-Strategien, die von numpy.histogram_bin_edges unterstützt werden: 'auto', 'fd', 'doane', 'scott', 'stone', 'rice', 'sturges' oder 'sqrt'.

rangeTupel oder None, Standard: None

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

Wenn bins eine Sequenz ist oder range angegeben ist, basiert die Autoskalierung auf dem angegebenen Bin-Bereich anstelle des Bereichs von x.

densitybool, Standard: False

Wenn True, zeichnen und geben Sie eine Wahrscheinlichkeitsdichte zurück: Jeder Bin zeigt die rohe Anzahl des Bins geteilt durch die Gesamtzahl der Zählungen *und die Binbreite* (density = counts / (sum(counts) * np.diff(bins))), 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 normalisiert.

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

Ein Array von Gewichten, das die gleiche Form wie x hat. Jeder Wert in x trägt nur sein zugehöriges Gewicht zum Bin-Count bei (anstelle von 1). Wenn density True ist, werden die Gewichte normalisiert, so dass das Integral der Dichte über den Bereich bei 1 bleibt.

cumulativebool oder -1, Standard: False

Wenn True, wird ein Histogramm berechnet, bei dem jeder Bin die Zählungen in diesem Bin plus alle Bins für kleinere Werte angibt. Der letzte Bin gibt die Gesamtzahl der Datenpunkte an.

Wenn density ebenfalls True ist, wird das Histogramm so normalisiert, dass der letzte Bin gleich 1 ist.

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 normalisiert, dass der erste Bin gleich 1 ist.

bottomArray-ähnlich oder float, Standard: 0

Position der Unterseite jedes Bins, d.h. die Bins werden von bottom bis bottom + hist(x, bins) gezeichnet. Wenn ein Skalar, wird die Unterseite jedes Bins um denselben Betrag verschoben. Wenn ein Array, wird jeder Bin unabhängig verschoben und die Länge von bottom muss der Anzahl der Bins entsprechen. Wenn None, Standard ist 0.

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

Der Typ des zu zeichnenden Histogramms.

  • 'bar' ist ein traditionelles Balkenhistogramm. Wenn mehrere Daten gegeben werden, werden die Balken nebeneinander angeordnet.

  • 'barstacked' ist ein Balkenhistogramm, bei dem mehrere Daten übereinander gestapelt werden.

  • 'step' erzeugt einen Linienplot, der standardmäßig nicht gefü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 sind auf den linken Bin-Kanten zentriert.

  • 'mid': Balken sind zwischen den Bin-Kanten zentriert.

  • 'right': Balken sind auf den rechten Bin-Kanten zentriert.

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

Wenn 'horizontal', wird barh für Balkenhistogramme verwendet und das bottom-Schlüsselwort sind die linken Kanten.

rwidthfloat oder None, Standard: None

Die relative Breite der Balken als Bruchteil der Binbreite. 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, um mehrere Datensätze abzugleichen. Balkendiagramme erzeugen mehrere Patches pro Datensatz, aber nur der erste erhält das Label, sodass 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 Histogramm-Bins. Siehe density und weights für eine Beschreibung der möglichen Semantik. Wenn die Eingabe x ein Array ist, 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 Kanten der Bins. Länge nbins + 1 (nbins linke Kanten und rechte Kante des letzten Bins). 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: Zulassen von Sequenzen von Werten in den oben aufgeführten Patch-Eigenschaften.

Siehe auch

hist2d

2D-Histogramm mit rechteckigen Bins

hexbin

2D-Histogramm mit hexagonalen Bins

stairs

Zeichne ein vorab berechnetes Histogramm

bar

Zeichne ein vorab berechnetes Histogramm

Anmerkungen

Bei einer großen Anzahl von Bins (>1000) kann das Zeichnen durch die Verwendung von stairs zum Zeichnen 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 für die Verwendung von matplotlib.axes.Axes.hist#

Animiertes Histogramm

Animiertes Histogramm

Histogramm an Streudiagramm ausrichten mit locatable Axes

Histogramm an Streudiagramm ausrichten mit locatable Axes

Streudiagramm mit Histogrammen

Streudiagramm mit Histogrammen

Histogramme mit Rechtecken und PolyCollections erstellen

Histogramme mit Rechtecken und PolyCollections erstellen

Histogramme

Histogramme

Bihistogramm

Bihistogramm

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

Bayesian Methods for Hackers Stilvorlage

Bayesian Methods for Hackers Stilvorlage

Achsen Demo

Achsen Demo

Textfelder platzieren

Textfelder platzieren

hist(x)

hist(x)

Artist-Tutorial

Artist-Tutorial

Pfad-Tutorial

Pfad-Tutorial

Tutorial zu Transformationen

Tutorial zu Transformationen

Schnelleinstieg

Schnelleinstieg