HOWTO · Matplotlib
Grafico densità Matplotlib
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 e poi tracciamo la funzione di densità per generare il grafico di densità.
In questa pagina
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: