Grafico densità Matplotlib
-
Genera il diagramma di densità usando il metodo
gaussian_kde()dal moduloscipy.stats -
Genera il grafico della densità usando il metodo
kdeplot()dal pacchettoseaborn -
Genera il diagramma di densità usando il metodo
distplot()dal pacchettoseaborn -
Imposta
kind='density'nel metodopandas.DataFrame.plot()per generare il grafico della densità
Per generare un grafico di densità usando Python, inizialmente stimiamo la funzione di densità dai dati forniti usando il metodo gaussian_kde() dal modulo scipy.stats. Quindi tracciamo la funzione di densità per generare il grafico di densità. In alternativa, possiamo anche usare kdeplot() dal pacchetto seaborn o impostare kind='density' nel metodo pandas.DataFrame.plot() per generare il grafico della densità.
Genera il diagramma di densità usando il metodo gaussian_kde() dal modulo 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()
Produzione:

Qui, per prima cosa stimiamo la funzione di densità per i dati forniti usando il metodo gaussian_kde(). Quindi, tracciamo la funzione per i valori che vanno da -2 a 10 usando il metodo plot().
Il grafico di densità generato non è abbastanza preciso perché la funzione gaussian_kde imposta automaticamente la larghezza di banda. Per impostare la larghezza di banda, possiamo usare la funzione covariance_factor della classe gaussian_kde. Chiamiamo quindi il metodo _compute_covariance in modo che tutti i fattori siano calcolati correttamente per generare il grafico preciso.
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()
Produzione:

Genera il grafico della densità usando il metodo kdeplot() dal pacchetto 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()
Produzione:

In questo modo, possiamo generare il grafico della densità semplicemente passando i dati nel metodo kdeplot().
Genera il diagramma di densità usando il metodo distplot() dal pacchetto seaborn
Possiamo anche usare il metodo distplot() dal pacchetto seaborn e impostare hist=False per generare il grafico della densità.
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()
Produzione:

Imposta kind='density' nel metodo pandas.DataFrame.plot() per generare il grafico della densità
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()
Produzione:

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