Parcela de densidad Matplotlib

Suraj Joshi 30 enero 2023
  1. Generar la gráfica de densidad usando el método gaussian_kde() del módulo scipy.stats
  2. Generar el diagrama de densidad usando el método kdeplot() del paquete Seaborn
  3. Generar la gráfica de densidad usando el método distplot() del paquete Seaborn
  4. Establecer kind='density' en pandas.DataFrame.plot() Método para generar la gráfica de la densidad
Parcela de densidad Matplotlib

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:

Generar la gráfica de densidad usando el método gaussian_kde

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 una gráfica de densidad más precisa usando el método gaussian_kde

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:

Generar la gráfica de densidad usando el método kdeplot

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:

Generar la gráfica de densidad usando el método distplot

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:

Establecer tipo=densidad en pandas.DataFrame.plot para generar el gráfico de densidad

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artículo relacionado - Matplotlib Plot