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 alsBarContaineroderPolygongezeichnet. Die Parameter bins, range, density und weights werden annumpy.histogramweitergeleitet.Wenn die Daten bereits in Bins eingeteilt und gezählt wurden, verwenden Sie
baroderstairs, 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_edgesunterstü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
Trueist, 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
Trueist, 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
Trueist, 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
Trueist, 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
bottombisbottom + 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
barhfü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
legendwie erwartet funktioniert.- stackedbool, Standard: False
Wenn
True, werden mehrere Daten übereinander gestapelt. WennFalse, 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.
- patches
BarContaineroder Liste eines einzelnenPolygonoder 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 alsdata[s]interpretiert wird, wennsein Schlüssel indataistx, 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
Anmerkungen
Bei einer großen Anzahl von Bins (>1000) kann das Zeichnen durch die Verwendung von
stairszum 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#
Histogramm an Streudiagramm ausrichten mit locatable Axes
Histogramme mit Rechtecken und PolyCollections erstellen
Demo der verschiedenen histtype-Einstellungen der Histogrammfunktion
Die Histogrammfunktion (hist) mit mehreren Datensätzen