Matplotlib-Dichte-Plot
-
Erzeugen des Dichtediagramms mit der Methode
gaussian_kde()aus dem Modulscipy.stats -
Generieren der Dichtekurve mit der Methode
kdeplot()aus dem Paketseaborn -
Generieren des Dichtediagramms mit der
distplot()Methode aus demseaborn-Paket -
Setzen Sie
kind='density'inpandas.DataFrame.plot()Methode zur Erzeugung des Dichtediagramms
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:

Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn