Matplotlib Histogramm

Wir können die `hist()`-Methode in pyplot verwenden, um Histogramme zu zeichnen.

Die `hist()`-Methode ist eine Funktion in der pyplot-Subbibliothek der Matplotlib-Bibliothek, die zum Zeichnen von Histogrammen verwendet wird.

Die `hist()`-Methode kann verwendet werden, um die Verteilung von Daten zu visualisieren, beispielsweise um die zentrale Tendenz, Schiefe und Ausreißer der Daten zu beobachten.

Die Syntax der `hist()`-Methode lautet wie folgt:

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, **kwargs)

Parameter description:

  • x: Gibt die Daten an, die zum Zeichnen des Histogramms verwendet werden; dies kann ein eindimensionales Array oder eine Liste sein.
  • bins: Optionaler Parameter, gibt die Anzahl der Bins für das Histogramm an. Standard ist 10.
  • range: Optionaler Parameter, gibt den Wertebereich des Histogramms an; dies kann ein Tupel oder eine Liste mit zwei Werten sein. Standard ist None, was bedeutet, dass die minimalen und maximalen Werte in den Daten verwendet werden.
  • density: Optionaler Parameter, gibt an, ob das Histogramm normalisiert werden soll. Standard ist False, was bedeutet, dass die Höhe des Histogramms die Anzahl der Stichproben in jedem Bin ist, nicht die Häufigkeit oder Wahrscheinlichkeitsdichte.
  • weights: Optionaler Parameter, gibt die Gewichtung jedes Datenpunkts an. Standard ist None.
  • cumulative: Optionaler Parameter, gibt an, ob ein kumulatives Verteilungsdiagramm gezeichnet werden soll. Standard ist False.
  • bottom: Optionaler Parameter, gibt die Bodenhöhe des Histogramms an. Standard ist None.
  • histtype: Optionaler Parameter, gibt den Typ des Histogramms an; dieser kann 'bar', 'barstacked', 'step', 'stepfilled' usw. sein. Standard ist 'bar'.
  • align: Optionaler Parameter, gibt die Ausrichtung der Histogramm-Bins an, die 'left', 'mid' oder 'right' sein kann. Standard ist 'mid'.
  • orientation: Optionaler Parameter, gibt die Orientierung des Histogramms an, die 'vertical' oder 'horizontal' sein kann. Standard ist 'vertical'.
  • rwidth: Optionaler Parameter, gibt die Breite jedes Bins an. Standard ist None.
  • log: Optionaler Parameter, gibt an, ob eine logarithmische Skala auf der y-Achse verwendet werden soll. Standard ist False.
  • color: Optionaler Parameter, gibt die Farbe des Histogramms an.
  • label: Optionaler Parameter, gibt die Beschriftung des Histogramms an.
  • stacked: Optionaler Parameter, gibt an, ob verschiedene Histogramme gestapelt werden sollen. Standard ist False.
  • **kwargs: Optionaler Parameter, weitere Plot-Parameter.

Im folgenden Beispiel verwenden wir einfach `hist()`, um ein Histogramm zu erstellen:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Erzeuge eine Menge Zufallsdaten
data = np.random.randn(1000)

# Zeichne das Histogramm
plt.hist(data, bins=30, color='skyblue', Alpha=0.8)

# Diagrammeigenschaften festlegen
plt.title('BEISPIEL hist() Test')
plt.xlabel('Wert')
plt.ylabel('Häufigkeit')

# Diagramm anzeigen
plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Das folgende Beispiel zeigt, wie man die `hist()`-Funktion verwendet, um Histogramme für mehrere Datengruppen zu zeichnen und sie zu vergleichen:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Drei Sätze Zufallsdaten generieren
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)
data3 = np.random.normal(-2, 1, 1000)

# Histogramme zeichnen
plt.hist(data1, bins=30, alpha=0.5, label='Daten 1')
plt.hist(data2, bins=30, alpha=0.5, label='Daten 2')
plt.hist(data3, bins=30, alpha=0.5, label='Daten 3')

# Diagrammeigenschaften festlegen
plt.title('BEISPIEL hist() TEST')
plt.xlabel('Wert')
plt.ylabel('Häufigkeit')
plt.legend()

# Diagramm anzeigen
plt.show()

Im obigen Beispiel haben wir drei verschiedene Sätze von Zufallsdaten generiert und die Funktion `hist()` verwendet, um ihre Histogramme zu zeichnen. Durch Festlegen unterschiedlicher Mittelwerte und Standardabweichungen können wir Zufallsdaten mit unterschiedlichen Verteilungseigenschaften erzeugen.

Wir haben den Parameter `bins` auf 30 gesetzt, was bedeutet, dass der Datenbereich in 30 gleich breite Intervalle unterteilt und dann die Häufigkeit der Daten in jedem Intervall gezählt wird.

Wir haben den Parameter `alpha` auf 0.5 gesetzt, was bedeutet, dass die Farbtransparenz jedes Histogramms 50% beträgt.

Wir haben den Parameter `label` verwendet, um die Beschriftung jedes Histogramms festzulegen, damit sie in der Legende angezeigt werden kann.

Dann verwenden wir die Funktion `legend()`, um die Legende anzuzeigen. Schließlich verwenden wir die Funktionen `title()`, `xlabel()` und `ylabel()`, um den Diagrammtitel und die Achsenbeschriftungen festzulegen.

Das angezeigte Ergebnis sieht wie folgt aus:

Anhand der obigen Abbildung können wir die Verteilung dieser drei Datengruppen deutlich erkennen. Dabei sind `data1` und `data2` nahe an einer Normalverteilung, während `data3` schief ist.

Diese Art des Vergleichs von Histogrammen kann uns helfen, die Verteilung verschiedener Datengruppen zu analysieren und zu vergleichen.

Kombination mit Pandas

Im folgenden Beispiel kombinieren wir Pandas, um ein Histogramm zu zeichnen:

Beispiel

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
# Verwende NumPy, um Zufallszahlen zu generieren
random_data = np.random.normal(170, 10, 250)
 
# Konvertiere die Daten in einen Pandas DataFrame
dataframe = pd.DataFrame(random_data)
 
# Verwende die hist()-Methode von Pandas, um ein Histogramm zu zeichnen
dataframe.hist()


# Diagrammeigenschaften festlegen
plt.title('BEISPIEL hist() Test')
plt.xlabel('X-Value')
plt.ylabel('Y-Value')

# Diagramm anzeigen
plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Zusätzlich zu DataFrames können Sie in Pandas auch Series-Objekte verwenden, um Histogramme zu zeichnen. Ersetzen Sie einfach die Spalten im DataFrame durch Series-Objekte.

Beispiel

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Zufällige Daten generieren
data = pd.Series(np.random.normal(size=100))

# Zeichne das Histogramm
# Der bins-Parameter gibt die Anzahl der Balken im Histogramm an
plt.hist(data, bins=10)

# Diagrammtitel und Achsenbeschriftungen festlegen
plt.title('EXAMPLE hist() Tes')
plt.xlabel('X-Values')
plt.ylabel('Y-Values')

# Diagramm anzeigen
plt.show()

Weitere Erweiterungen