HOWTO · Matplotlib
Matplotlib-Dichte-Plot
Um ein Dichtediagramm mit Python zu erzeugen, schätzen wir zunächst die Dichtefunktion aus den gegebenen Daten mit der `gaussian_kde()` Methode aus dem `scipy.stats` Modul und zeichnen dann die Dichtefunktion auf, um das Dichtediagramm zu erzeugen.
Auf dieser Seite
Um ein Dichtediagramm unter Verwendung von Python zu erzeugen, schätzen wir zunächst die Dichtefunktion aus den gegebenen Daten unter Verwendung der gaussian_kde() Methode aus dem scipy.stats Modul. Dann zeichnen wir die Dichtefunktion auf, um das Dichtediagramm zu erzeugen. Alternativ können wir auch kdeplot() aus dem Paket seaborn verwenden oder kind='density' in der Methode pandas.DataFrame.plot() setzen, um das Dichtediagramm zu erzeugen.
Erzeugen des Dichtediagramms mit der Methode gaussian_kde() aus dem Modul scipy.stats
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
density = kde.gaussian_kde(data)
x = np.linspace(-2, 10, 300)
y = density(x)
plt.plot(x, y)
plt.title("Density Plot of the data")
plt.show()
Ausgabe:
Hier schätzen wir zunächst die Dichtefunktion für die gegebenen Daten mit der gaussian_kde() Methode. Dann zeichnen wir die Funktion für Werte im Bereich von -2 bis 10 mit der plot() Methode auf.
Das erzeugte Dichtediagramm ist nicht präzise genug, da die gaussian_kde-Funktion die Bandbreite automatisch einstellt. Um die Bandbreite einzustellen, können wir die Funktion covariance_factor der Klasse gaussian_kde verwenden. Wir rufen dann die _compute_covariance-Methode auf, so dass alle Faktoren korrekt berechnet werden, um die genaue Darstellung zu erzeugen.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
prob_density = kde.gaussian_kde(data)
prob_density.covariance_factor = lambda: 0.25
prob_density._compute_covariance()
x = np.linspace(-2, 10, 300)
y = prob_density(x)
plt.plot(x, y)
plt.title("Density Plot of the data")
plt.show()
Ausgabe:
Generieren der Dichtekurve mit der Methode kdeplot() aus dem Paket seaborn
import matplotlib.pyplot as plt
import seaborn as sns
data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
sns.kdeplot(data, bw=0.25)
plt.show()
Ausgabe:
Auf diese Weise können wir den Dichteplot erzeugen, indem wir die Daten einfach in die kdeplot() Methode übergeben.
Generieren des Dichtediagramms mit der distplot() Methode aus dem seaborn-Paket
Wir können auch die Methode distplot() aus dem Paket seaborn verwenden und hist=False setzen, um den Dichteplot zu erzeugen.
import matplotlib.pyplot as plt
import seaborn as sns
data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
sns.distplot(data, hist=False)
plt.show()
Ausgabe:
Setzen Sie kind='density' in pandas.DataFrame.plot() Methode zur Erzeugung des Dichtediagramms
import pandas as pd
import matplotlib.pyplot as plt
data = [2, 3, 3, 4, 2, 1, 5, 6, 4, 3, 3, 3, 6, 4, 5, 4, 3, 2]
df = pd.DataFrame(data)
df.plot(kind="density")
plt.show()
Ausgabe: