Pandas Traçage Histogramme : Créer et Personnaliser des Histogrammes en Python
Published on
La visualisation de données est un aspect crucial de l'analyse de données et la bibliothèque Pandas de Python est un outil puissant qui nous permet de créer des visualisations instructives. Une de ces visualisations est un histogramme, une représentation graphique de la distribution d'un ensemble de données. Dans cet article, nous explorerons comment tracer un histogramme en utilisant pandas, personnaliser les bacs, tracer plusieurs colonnes, et bien plus encore. Nous aborderons également certaines questions fréquemment posées et fournirons des exemples pour vous aider à comprendre le processus plus en détail.
Les histogrammes sont particulièrement utiles lorsqu'il s'agit de grands ensembles de données, car ils peuvent fournir un résumé visuel des données. Ils peuvent nous aider à comprendre la distribution fréquentielle sous-jacente d'un ensemble de données continus ou discrets. Cela peut être particulièrement utile lorsqu'il s'agit de données telles que les groupes d'âge, où la compréhension de la distribution peut fournir des informations précieuses.
Vous souhaitez créer rapidement des visualisations de données à partir d'un dataframe Pandas en Python, sans écrire de code ?
PyGWalker est une bibliothèque Python pour l'analyse exploratoire de données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse de données et de visualisation en transformant votre dataframe pandas (et dataframe polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.
Création d'un Histogramme avec Pandas
La création d'un histogramme avec pandas est simple grâce à la fonction hist()
. Cette fonction offre un moyen rapide de visualiser la distribution des données dans un dataframe ou une série pandas. Voici un exemple de base de création d'un histogramme :
import pandas as pd
import matplotlib.pyplot as plt
# Créer un dataframe simple
data = {'valeurs': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}
df = pd.DataFrame(data)
# Tracer un histogramme
df['valeurs'].hist()
plt.show()
Dans cet exemple, nous importons d'abord les bibliothèques nécessaires, pandas et matplotlib. Nous créons ensuite un simple dataframe pandas et utilisons la fonction hist()
pour tracer un histogramme de la colonne 'valeurs'. La fonction plt.show()
est utilisée pour afficher le tracé.
Personnalisation des Bacs dans un Histogramme Pandas
La fonction hist()
de pandas utilise un nombre de bacs par défaut, qui est de 10. Cependant, vous pouvez personnaliser le nombre de bacs en fonction de vos besoins. Le paramètre bins
dans la fonction hist()
est utilisé pour spécifier le nombre de bacs que vous souhaitez dans votre histogramme.
Par exemple, si vous souhaitez augmenter le nombre de bacs à 20, vous pouvez le faire comme suit :
df['valeurs'].hist(bins=20)
plt.show()
La personnalisation des bacs dans un histogramme pandas peut vous permettre d'obtenir une vue plus détaillée de la distribution des données. Cependant, il est important de choisir un nombre approprié de bacs. Trop de bacs peuvent entraîner un surajustement, où l'histogramme représente trop précisément les données et peut manquer le "plus grand tableau". D'autre part, trop peu de bacs peuvent simplifier à l'excès les données, ce qui rend difficile la détection de motifs utiles.
Tracé d'un Histogramme avec Plusieurs Colonnes dans Pandas
Pandas vous permet également de tracer un histogramme avec plusieurs colonnes. Cela peut être particulièrement utile lorsque vous souhaitez comparer la distribution de deux variables différentes. Pour tracer un histogramme avec plusieurs colonnes, il vous suffit de passer les colonnes à la fonction hist()
.
Voici un exemple de tracé d'un histogramme avec plusieurs colonnes :
# Créer un dataframe avec deux colonnes
data = {'valeurs1': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4],
'valeurs2': [1, 1, 2, 2, 3, 3, 3, 4, 4, 4]}
df = pd.DataFrame(data)
# Tracer un histogramme avec plusieurs colonnes
df.hist(bins=20, alpha=0.5)
plt.show()
Dans cet exemple, nous créons un dataframe avec deux colonnes, 'valeurs1' et 'valeurs2'. Nous appelons ensuite la fonction hist()
sur le dataframe, ce qui trace un histogramme pour chaque colonne. Le paramètre alpha
est utilisé pour définir la transparence des histogrammes, ce qui facilite leur comparaison.
Tracé d'un Histogramme par Groupe dans Pandas
Une autre fonctionnalité puissante de pandas est la possibilité de tracer un histogramme par groupe. Cela peut être particulièrement utile lorsque vous souhaitez comparer la distribution d'une variable entre différents groupes.
Par exemple, supposons que nous disposions d'un dataframe qui contient les âges de personnes dans différentes professions. Nous pouvons tracer un histogramme des âges par profession de la manière suivante :
# Créer un dataframe avec l'âge et la profession
data = {'âge': [23, 25, 22, 30, 32, 40, 35, 24, 28, 35],
'profession': ['ingénieur', 'médecin', 'ingénieur', 'médecin', 'ingénieur', 'médecin', 'ingénieur', 'médecin', 'ingénieur', 'médecin']}
df = pd.DataFrame(data)
# Tracer un histogramme par groupe
df.groupby('profession')['âge'].hist(alpha=0.6)
plt.legend(['Ingénieur', 'Médecin'])
plt.show()
Dans cet exemple, nous commençons par créer un dataframe avec les colonnes 'âge' et 'profession'. Nous regroupons ensuite le dataframe par 'profession' et appelons la fonction hist()
sur la colonne 'âge'. Cela donne un histogramme des âges pour chaque profession. Le paramètre alpha
est utilisé pour définir la transparence des histogrammes, et la fonction legend()
est utilisée pour ajouter une légende au tracé.
Tracé d'un Histogramme Normalisé dans Pandas
Parfois, il est utile de tracer un histogramme normalisé pour représenter la distribution des données en proportions plutôt qu'en dénombrements. Cela peut être réalisé dans pandas en définissant le paramètre density
sur True
dans la fonction hist()
.
Voici un exemple de tracé d'un histogramme normalisé :
# Tracer un histogramme normalisé
df['valeurs1'].hist(density=True)
plt.show()
Dans cet exemple, l'argument `density=True` garantit que la surface sous l'histogramme s'additionne à 1, ce qui nous donne une fonction de densité de probabilité.
## Création de sous-graphiques avec l'histogramme de Pandas
Pandas vous permet également de créer des sous-graphiques lors de la création d'histogrammes. Cela peut être particulièrement utile lorsque vous souhaitez comparer les distributions de plusieurs variables côte à côte. Pour créer des sous-graphiques, vous pouvez utiliser l'argument `subplots=True` dans la fonction `hist()`.
Voici un exemple :
```python
# Création des sous-graphiques
df.hist(bins=20, alpha=0.5, subplots=True, layout=(1,2))
plt.show()
Dans cet exemple, nous créons deux sous-graphiques dans une seule rangée pour les colonnes 'values1' et 'values2'. Le paramètre layout
est utilisé pour spécifier l'arrangement des sous-graphiques.
Ajout de barres d'erreur à un histogramme de Pandas
L'ajout de barres d'erreur à un histogramme peut fournir une représentation visuelle de la variabilité ou de l'incertitude des données. Bien que pandas ne prenne pas en charge directement l'ajout de barres d'erreur aux histogrammes, cela peut être réalisé en utilisant la bibliothèque matplotlib
.
Voici un exemple :
import numpy as np
# Calcul de la moyenne et de l'écart-type
moyenne = df['values1'].mean()
ecart_type = df['values1'].std()
# Tracé de l'histogramme avec des barres d'erreur
plt.hist(df['values1'], bins=20, alpha=0.5)
plt.errorbar(moyenne, 5, xerr=ecart_type, fmt='o')
plt.show()
Dans cet exemple, nous calculons d'abord la moyenne et l'écart-type de la colonne 'values1'. Nous tracions ensuite l'histogramme et ajoutions une barre d'erreur à la position de la moyenne. La fonction errorbar()
de matplotlib
est utilisée pour ajouter la barre d'erreur.
Conclusion
Les histogrammes sont un outil puissant pour la visualisation des données, et la bibliothèque pandas en Python offre une fonction polyvalente pour créer et personnaliser les histogrammes. Que vous traciez un simple histogramme, personnalisiez les classes, traciez plusieurs colonnes ou créiez des sous-graphiques, pandas vous couvre. N'oubliez pas que la clé d'une visualisation efficace des données consiste non seulement à créer des graphiques perspicaces, mais aussi à les personnaliser pour répondre à vos besoins spécifiques.
FAQ
-
Comment puis-je personnaliser les repères de l'axe des x dans un histogramme pandas ? Vous pouvez personnaliser les repères de l'axe des x à l'aide de la fonction
xticks()
de la bibliothèquematplotlib
. Par exemple,plt.xticks(range(0, 10))
définira les repères de l'axe des x pour qu'ils s'étendent de 0 à 10. -
Comment puis-je tracer un histogramme avec une densité dans pandas ? Vous pouvez tracer un histogramme avec une densité en définissant le paramètre
density
surTrue
dans la fonctionhist()
. Cela tracera un histogramme normalisé où la surface sous l'histogramme sera ajoutée à 1. -
Comment puis-je ajouter une légende à mon histogramme pandas ? Vous pouvez ajouter une légende à votre histogramme pandas en utilisant la fonction
legend()
de la bibliothèquematplotlib
. Par exemple,plt.legend(['Colonne1', 'Colonne2'])
ajoutera une légende avec 'Colonne1' et 'Colonne2'.