Histogramme Matplotlib

Nous pouvons utiliser la méthode `hist()` dans pyplot pour tracer des histogrammes.

La méthode `hist()` est une fonction de la sous-bibliothèque pyplot de la bibliothèque Matplotlib utilisée pour tracer des histogrammes.

La méthode `hist()` peut être utilisée pour visualiser la distribution des données, par exemple pour observer la tendance centrale, l'asymétrie et les valeurs aberrantes des données.

La syntaxe de la méthode `hist()` est la suivante :

matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, **kwargs)

Description du paramètre :

  • x: Indique les données utilisées pour tracer l'histogramme, qui peuvent être un tableau ou une liste à une dimension.
  • bins: Paramètre facultatif, spécifie le nombre de classes de l'histogramme. La valeur par défaut est 10.
  • range: Paramètre facultatif, spécifie la plage de valeurs de l'histogramme, qui peut être un tuple ou une liste de deux valeurs. La valeur par défaut est None, ce qui signifie que les valeurs minimale et maximale des données sont utilisées.
  • density: Paramètre facultatif, spécifie s'il faut normaliser l'histogramme. La valeur par défaut est False, ce qui signifie que la hauteur de l'histogramme est le nombre d'échantillons dans chaque classe, et non la fréquence ou la densité de probabilité.
  • weights: Paramètre facultatif, spécifie le poids de chaque point de données. La valeur par défaut est None.
  • cumulative: Paramètre facultatif, spécifie s'il faut tracer un graphique de distribution cumulative. La valeur par défaut est False.
  • bottom: Paramètre facultatif, spécifie la hauteur de base de l'histogramme. La valeur par défaut est None.
  • histtype: Paramètre facultatif, spécifie le type d'histogramme, qui peut être 'bar', 'barstacked', 'step', 'stepfilled', etc. La valeur par défaut est 'bar'.
  • align: Paramètre facultatif, spécifie l’alignement des bacs de l’histogramme, qui peut être 'left', 'mid' ou 'right'. La valeur par défaut est 'mid'.
  • orientation: Paramètre facultatif, spécifie l’orientation de l’histogramme, qui peut être 'vertical' ou 'horizontal'. La valeur par défaut est 'vertical'.
  • rwidth: Paramètre facultatif, spécifie la largeur de chaque bac. La valeur par défaut est None.
  • log: Paramètre facultatif, spécifie s’il faut utiliser une échelle logarithmique sur l’axe des y. La valeur par défaut est False.
  • color: Paramètre facultatif, spécifie la couleur de l’histogramme.
  • label: Paramètre facultatif, spécifie l’étiquette de l’histogramme.
  • stacked: Paramètre facultatif, spécifie s’il faut empiler différents histogrammes. La valeur par défaut est False.
  • **kwargs: Paramètre facultatif, autres paramètres de tracé.

Dans l’exemple suivant, nous utilisons simplement `hist()` pour créer un histogramme :

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer un ensemble de données aléatoires
data = np.random.randn(1000)

# Tracer l’histogramme
plt.hist(data, bins=30, color='skyblue', alpha=0.8)

# Définir les propriétés du graphique
plt.title('EXEMPLE hist() Test')
plt.xlabel('Valeur')
plt.ylabel('Fréquence')

# Afficher le graphique
plt.show()

Le résultat affiché est le suivant :

L'exemple suivant montre comment utiliser la fonction `hist()` pour tracer des histogrammes pour plusieurs groupes de données et les comparer :

Exemple

import matplotlib.pyplot as plt
import numpy as np

# Générer trois ensembles de données aléatoires
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)
data3 = np.random.normal(-2, 1, 1000)

# Tracer les histogrammes
plt.hist(data1, bins=30, alpha=0.5, label='Données 1')
plt.hist(data2, bins=30, alpha=0.5, label='Données 2')
plt.hist(data3, bins=30, alpha=0.5, label='Données 3')

# Définir les propriétés du graphique
plt.title('EXEMPLE hist() TEST')
plt.xlabel('Valeur')
plt.ylabel('Fréquence')
plt.legend()

# Afficher le graphique
plt.show()

Dans l'exemple ci-dessus, nous avons généré trois ensembles différents de données aléatoires et utilisé la fonction `hist()` pour dessiner leurs histogrammes. En définissant différentes moyennes et écarts-types, nous pouvons générer des données aléatoires avec différentes caractéristiques de distribution.

Nous avons défini le paramètre `bins` sur 30, ce qui signifie diviser la plage de données en 30 intervalles de largeur égale, puis compter la fréquence des données dans chaque intervalle.

Nous avons défini le paramètre `alpha` sur 0.5, ce qui signifie que la transparence de couleur de chaque histogramme est de 50%.

Nous avons utilisé le paramètre `label` pour définir l'étiquette de chaque histogramme afin qu'elle puisse être affichée dans la légende.

Ensuite, nous utilisons la fonction `legend()` pour afficher la légende. Enfin, nous utilisons les fonctions `title()`, `xlabel()` et `ylabel()` pour définir le titre du graphique et les étiquettes des axes.

Le résultat affiché est le suivant :

À partir de la figure ci-dessus, nous pouvons clairement voir la distribution de ces trois groupes de données. Parmi eux, `data1` et `data2` sont proches d'une distribution normale, tandis que `data3` est asymétrique.

Cette façon de comparer des histogrammes peut nous aider à analyser et comparer la distribution de différents groupes de données.

Combinaison avec Pandas

Dans l'exemple suivant, nous combinons Pandas pour tracer un histogramme :

Exemple

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
# Utiliser NumPy pour générer des nombres aléatoires
random_data = np.random.normal(170, 10, 250)
 
# Convertir les données en un DataFrame Pandas
dataframe = pd.DataFrame(random_data)
 
# Utiliser la méthode hist() de Pandas pour tracer un histogramme
dataframe.hist()


# Définir les propriétés du graphique
plt.title('EXEMPLE hist() Test')
plt.xlabel('Valeur X')
plt.ylabel('Valeur Y')

# Afficher le graphique
plt.show()

Le résultat affiché est le suivant :

En plus des DataFrames, vous pouvez également utiliser des objets Series dans Pandas pour dessiner des histogrammes. Remplacez simplement les colonnes du DataFrame par des objets Series.

Exemple

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Générer des données aléatoires
data = pd.Series(np.random.normal(size=100))

# Tracer l’histogramme
# Le paramètre bins spécifie le nombre de barres dans l'histogramme
plt.hist(data, bins=10)

# Définir le titre du graphique et les étiquettes des axes
plt.title('EXAMPLE hist() Tes')
plt.xlabel('X-Values')
plt.ylabel('Y-Values')

# Afficher le graphique
plt.show()

Autres extensions