Parcela de densidad Matplotlib
-
Generar la gráfica de densidad usando el método
gaussian_kde()del móduloscipy.stats -
Generar el diagrama de densidad usando el método
kdeplot()del paquete Seaborn -
Generar la gráfica de densidad usando el método
distplot()del paquete Seaborn -
Establecer
kind='density'enpandas.DataFrame.plot()Método para generar la gráfica de la densidad
Para generar un gráfico de densidad usando Python, primero estimamos la función de densidad a partir de los datos dados usando el método gaussian_kde() del módulo scipy.stats. Luego trazamos la función de densidad para generar la gráfica de densidad. Alternativamente, también podemos usar kdeplot() del paquete seaborn o establecer kind='density' en el método pandas.DataFrame.plot() para generar la gráfica de densidad.
Generar la gráfica de densidad usando el método gaussian_kde() del módulo 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()
Resultado:

Aquí, primero estimamos la función de densidad para los datos dados usando el método gaussian_kde(). Luego, trazamos la función para los valores que van de -2 a 10 usando el método plot().
La gráfica de densidad generada no es lo suficientemente precisa porque la función gaussian_kde establece el ancho de banda automáticamente. Para establecer el ancho de banda, podemos usar la función covariance_factor de la clase gaussian_kde. Luego llamamos al método _compute_covariance para que todos los factores se calculen correctamente para generar el gráfico 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()
Resultado:

Generar el diagrama de densidad usando el método kdeplot() del paquete 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()
Resultado:

De esta manera, podemos generar la gráfica de densidad simplemente pasando los datos al método kdeplot().
Generar la gráfica de densidad usando el método distplot() del paquete Seaborn
También podemos usar el método distplot() del paquete Seaborn y poner hist=False para generar la gráfica de densidad.
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()
Resultado:

Establecer kind='density' en pandas.DataFrame.plot() Método para generar la gráfica de la densidad
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()
Resultado:

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