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