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