Graphique de densité de Matplotlib

Suraj Joshi 30 janvier 2023
  1. Générer le graphe de densité en utilisant la méthode gaussian_kde() du module scipy.stats
  2. Générer le graphe de densité en utilisant la méthode kdeplot() à partir du paquet seaborn
  3. Générer le graphe de densité en utilisant la méthode distplot() du paquet seaborn
  4. Définissez kind='density' dans pandas.DataFrame.plot() Méthode pour générer le graphe de densité
Graphique de densité de Matplotlib

Pour générer un diagramme de densité en Python, nous estimons d’abord la fonction de densité à partir des données données données en utilisant la méthode gaussian_kde() du module scipy.stats. Nous traçons ensuite la fonction de densité pour générer le diagramme de densité. Alternativement, nous pouvons aussi utiliser kdeplot() du paquet seaborn ou mettre kind='density' dans la méthode pandas.DataFrame.plot() pour générer le graphe de densité.

Générer le graphe de densité en utilisant la méthode gaussian_kde() du module 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()

Production :

Générer le diagramme de densité en utilisant la méthode gaussienne_kde

Ici, nous estimons d’abord la fonction de densité pour les données données données en utilisant la méthode gaussian_kde(). Ensuite, nous traçons la fonction pour des valeurs allant de -2 à 10 en utilisant la méthode plot().

Le tracé de la densité généré n’est pas assez précis car la fonction gaussian_kde règle automatiquement la largeur de bande. Pour définir la largeur de bande, nous pouvons utiliser la fonction covariance_factor de la classe gaussian_kde. Nous appelons alors la méthode _compute_covariance afin que tous les facteurs soient calculés correctement pour générer le tracé précis.

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()

Production :

Générer un tracé de densité plus précis en utilisant la méthode gaussienne_kde

Générer le graphe de densité en utilisant la méthode kdeplot() à partir du paquet 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()

Production :

Générer le diagramme de densité en utilisant la méthode kdeplot

De cette façon, nous pouvons générer le graphe de densité en passant simplement les données dans la méthode kdeplot().

Générer le graphe de densité en utilisant la méthode distplot() du paquet seaborn

Nous pouvons également utiliser la méthode distplot() du paquet seaborn et mettre hist=False pour générer le graphe de 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()

Production :

Générer le diagramme de densité en utilisant la méthode distplot

Définissez kind='density' dans pandas.DataFrame.plot() Méthode pour générer le graphe de 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()

Production :

Définir kind=densité dans pandas.DataFrame.plot pour générer le diagramme de densité

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn