Die Funktion hist()
von Matplotlib bietet leistungsstarke Werkzeuge zur Visualisierung von Datenverteilungen. Die automatische Binning-Funktion kann jedoch manchmal wichtige Details verschleiern oder zu Fehlinterpretationen führen. Eine präzise Kontrolle der Bin-Größe ist unerlässlich, um genaue und aussagekräftige Visualisierungen zu erstellen. Dieser Artikel untersucht zwei effektive Methoden, um dies zu erreichen.
Inhaltsverzeichnis
Direkte Angabe der Bin-Grenzen
Der direkteste Ansatz zur Steuerung der Bin-Größe besteht darin, die Bin-Grenzen explizit mit dem Parameter bins
in der Funktion hist()
zu definieren. Dies bietet vollständige Kontrolle über die Grenzen jedes Bins.
import matplotlib.pyplot as plt
import numpy as np
# Beispiel-Daten
data = np.random.randn(1000)
# Definition der Bin-Grenzen (z.B. Bins mit Breite 0.5 von -4 bis 4)
bin_edges = np.arange(-4, 4.1, 0.5)
# Histogramm erstellen
plt.hist(data, bins=bin_edges)
plt.xlabel("Wert")
plt.ylabel("Frequenz")
plt.title("Histogramm mit explizit definierten Bin-Grenzen")
plt.show()
Dieser Code generiert ein Histogramm mit Bins der Breite 0,5 im Bereich von -4 bis 4. Das Array bin_edges
definiert präzise die Grenzen jedes Bins. Der letzte Wert in bin_edges
legt die obere Grenze des letzten Bins fest. Datenpunkte außerhalb dieses Bereichs werden ausgeschlossen. Passen Sie bin_edges
nach Bedarf an, um Ihre Daten und die gewünschte Bin-Breite zu erfassen.
Berechnung der Bins aus der gewünschten Breite
Alternativ, wenn Sie die gewünschte Bin-Breite, aber nicht die genauen Grenzen kennen, berechnen Sie die benötigte Anzahl von Bins basierend auf dem Bereich Ihrer Daten und der gewünschten Breite. Matplotlib bestimmt dann automatisch die entsprechenden Bin-Grenzen.
import matplotlib.pyplot as plt
import numpy as np
# Beispiel-Daten
data = np.random.randn(1000)
# Gewünschte Bin-Breite
bin_width = 0.5
# Berechnung der Anzahl der Bins
data_min = np.min(data)
data_max = np.max(data)
num_bins = int((data_max - data_min) / bin_width)
# Histogramm erstellen
plt.hist(data, bins=num_bins)
plt.xlabel("Wert")
plt.ylabel("Frequenz")
plt.title("Histogramm mit berechneter Anzahl von Bins")
plt.show()
# Für feinere Kontrolle, explizite Berechnung der Bin-Grenzen:
bin_edges = np.linspace(data_min, data_max, num_bins + 1) # linspace für gleichmäßige Abstände verwenden
plt.hist(data, bins=bin_edges)
plt.xlabel("Wert")
plt.ylabel("Frequenz")
plt.title("Histogramm mit präzise berechneten Bin-Grenzen")
plt.show()
Dieser Code berechnet zuerst num_bins
. Matplotlib verwendet dies dann, um die Bin-Grenzen automatisch anzupassen und sicherzustellen, dass alle Datenpunkte enthalten sind. Der zweite Teil zeigt, wie man bin_edges
für eine präzisere Kontrolle berechnet. Beachten Sie, dass Matplotlib diese Kanten möglicherweise geringfügig anpasst.
Durch die Anwendung einer dieser Methoden können Sie das Binning in Ihren Matplotlib-Histogrammen präzise steuern, was zu klareren und aussagekräftigeren Datenvisualisierungen führt. Wählen Sie die Methode, die am besten zu Ihren Bedürfnissen und dem gewünschten Kontrollgrad passt.