Archives Wild Code School
Python

Visualisation d'analyse exploratoire

Quête 65 sur 66 · 12 images archivées

Python offre une gamme de bibliothèques pour créer des visualisations, avec Matplotlib et Seaborn étant deux des plus populaires.

Alors que Seaborn fournit une interface de haut niveau pour créer des graphiques statistiques attractifs et informatifs avec un code minimal, il est construit sur Matplotlib, la bibliothèque de visualisation principale en Python. Cela signifie que vous pouvez exploiter toute la puissance et la flexibilité de Matplotlib pour personnaliser et améliorer davantage les graphiques Seaborn.

Commençons par importer à la fois Seaborn et Matplotlib :

python
import matplotlib.pyplot as plt
import seaborn as sns

Avec import matplotlib.pyplot as plt, vous pouvez utiliser plt comme alias pour accéder à toutes les fonctions de visualisation fournies par le module pyplot de Matplotlib. De même, sns est utilisé comme alias pour accéder aux fonctions Seaborn.

Créons un graphique basique avec Seaborn en utilisant des données d'exemple :

python
# Sample data
data = {'x': [1, 2, 3, 4], 'y': [10, 20, 25, 30]}

# Create a basic line plot using Seaborn
sns.lineplot(x='x', y='y', data=data)

basics Ici, x='x' et y='y' font référence aux clés dans le dictionnaire data ou aux noms de colonnes si data est un DataFrame pandas. Alternativement, vous pouvez passer directement des listes de nombres à x et y.

Lors de l'exécution d'un script Python (par opposition à un environnement interactif comme Jupyter Notebook), vous devez ajouter plt.show() à la fin de votre code pour afficher le graphique.

Ajout de personnalisations de base

Maintenant, utilisons les fonctions Matplotlib pour améliorer notre graphique. Nous allons ajouter un titre, modifier les étiquettes des axes avec des tailles de police ajustées, inclure des lignes de grille et changer la taille de la figure.

python
# Set up the figure
plt.figure(figsize=[10, 6])

# Create a basic line plot using Seaborn
sns.lineplot(x='x', y='y', data=data)

# Customizing with Matplotlib
plt.title('Customized Line Plot', fontsize=16, color='blue')
plt.xlabel('Custom X Label', fontsize=14)
plt.ylabel('Custom Y Label', fontsize=14)

# Customize grid style
plt.grid(True, linestyle='--', alpha=0.6)

# Save figure to a file
plt.savefig('basicplot.png', dpi=500)

# Display the plot (needed for non-interactive environments)
#plt.show()

basic plot Voici une explication des personnalisations :

  • plt.figure() : Crée une nouvelle figure ou active une figure existante, permettant la personnalisation de la taille de la figure.
  • plt.title() : Définit le titre du graphique, ajustant sa taille de police et sa couleur.
  • plt.xlabel() et plt.ylabel() : Modifient les étiquettes des axes et leurs tailles de police.
  • plt.grid() : Ajoute des lignes de grille avec des styles personnalisables, comme des lignes pointillées et de la transparence.
  • plt.savefig() : Sauvegarde le graphique actuel dans un fichier avec une résolution spécifiée.

Nous avons un jeu de données contenant des informations sur les étudiants d'une plateforme éducative. Nous utiliserons ce jeu de données pour explorer diverses techniques de visualisation de données.

:paperclip: students.csv

Age Gender HoursSpent CourseDifficulty CompletionStatus
35 Male 21.2 Medium Completed
29 Male 7.79 Hard Completed
36 Female 11.75 Easy Not Completed
45 Male 7.55 Hard Not Completed

Notre première étape est de réaliser une analyse univariée, qui examine une variable à la fois. Cette approche nous aide à répondre à des questions comme :

  1. Quel est l'âge typique des étudiants sur la plateforme ?
  2. Quelle proportion d'étudiants termine leurs cours ?

Le choix de la visualisation dépend du type de variable que nous analysons - qu'elle soit quantitative (comme l'âge) ou catégorielle (comme le statut de complétion).

Variables quantitatives

Lorsqu'on traite des variables quantitatives (données numériques), deux techniques de visualisation clés sont communément utilisées : les boîtes à moustaches et les histogrammes.

Par exemple, supposons que nous souhaitons en savoir plus sur l'âge des étudiants sur la plateforme. Un bon point de départ est de tracer une boîte à moustaches de la variable Age. Nous pourrions tracer une boîte à moustaches de Age comme suit :

python
# Load libraries
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Load data into a dataframe
df_students = pd.read_csv('students.csv')

# Create the boxplot
sns.boxplot(x='Age', data=df_students)

Une boîte à moustaches résume la distribution d'une seule variable quantitative en affichant sa médiane, ses quartiles et ses valeurs aberrantes potentielles. Cette visualisation fournit un aperçu concis de la tendance centrale et de la dispersion des données.

Nous pouvons voir que la plupart des âges des étudiants se situent dans une plage de 23 à 35 ans ; cependant, il y a quelques valeurs aberrantes.

Pour plus de détails, nous pouvons également tracer un histogramme de la variable Age.

python
sns.histplot(x='Age', bins=10, color='skyblue', data=df_students, kde=True)

L'histogramme montre comment les âges des étudiants sont répartis en regroupant les valeurs en différentes tranches (appelées "bins") et en comptant combien de fois chaque tranche apparaît dans les données.

Le paramètre kde=True (où kde signifie Kernel Density Estimation) ajoute une courbe lissée qui suit la forme générale de l'histogramme. Cette courbe permet de mieux visualiser les tendances de la distribution : elle met en évidence les zones où les âges sont les plus fréquents et aide à repérer la structure globale des données.

La plupart des étudiants se situent dans la tranche d'âge de 20 à 40 ans, avec la plus forte concentration entre 25 et 35 ans—confirmant ce que nous avons observé dans la boîte à moustaches. Cela suggère que les jeunes adultes constituent la majorité de la base d'utilisateurs de la plateforme, ce qui est typique pour une plateforme d'éducation en ligne.

Variables catégorielles

Pour les variables catégorielles, les diagrammes en barres sont l'outil de visualisation privilégié. Ils montrent rapidement la fréquence ou la proportion des valeurs dans chaque catégorie. Par exemple, pour visualiser le nombre d'étudiants ayant terminé le cours, nous pouvons utiliser un diagramme en barres comme ceci :

python
sns.countplot(x='CompletionStatus', data=df_students, hue='CompletionStatus', palette='muted')

Utiliser le paramètre hue='CompletionStatus' peut sembler redondant puisque nous traçons déjà 'CompletionStatus' sur l'axe x. Cependant, cela assure que chaque statut (Completed et Not Completed) est représenté par une couleur distincte, ce qui peut améliorer la clarté visuelle du graphique. Bien que les diagrammes circulaires soient une autre option pour visualiser des données catégorielles, ils sont généralement moins recommandés pour plusieurs raisons :

  1. Difficulté à comparer les proportions : Il est plus difficile pour l'œil humain de comparer précisément les tailles des parts de camembert, particulièrement quand il y a beaucoup de catégories ou quand les proportions sont similaires.
  2. Catégories limitées : Les diagrammes circulaires deviennent encombrés et difficiles à lire quand il y a plus que quelques catégories.
  3. Moins précis : Les diagrammes en barres permettent des comparaisons plus précises et peuvent facilement inclure des valeurs ou des pourcentages exacts.

Exercice

Analyser les données démographiques des clients

Votre responsable souhaite un aperçu plus général de la base de clients en analysant la distribution des données démographiques des clients comme l'âge, le genre et le niveau de revenu. Cela aidera à développer des stratégies ciblées pour différents segments de clients.

Jeu de données :

Utilisez le jeu de données customers_cleaned.csv, qui contient les colonnes suivantes :

  • customer_id : Identifiant unique pour chaque client
  • age : Âge du client
  • gender : Genre du client (homme ou femme)
  • income_level : Niveau de revenu du client (par exemple, bas, moyen, élevé)
  • region_id : Identifiant pour la région du client

Assurez-vous de copier customers_cleaned.csv dans le dossier exercise du dossier Exploratory_Analytics_Visualisation.

Tâche 1 : Configurer votre Notebook

Ouvrez un nouveau notebook Jupyter nommé customer_demographics_visuals.ipynb dans le dossier exercise du dossier Exploratory_Analytics_Visualisation.

Tâche 2 : Charger et inspecter les données

  1. Chargez le jeu de données customers_cleaned.csv dans un DataFrame pandas et vérifiez les colonnes démographiques des clients (age, gender, income_level).

Tâche 3 : Visualiser les données démographiques des clients Pour chaque graphique, ajoutez un titre et si nécessaire changez les étiquettes sur les axes x et y.

  1. Distribution de l'âge :
    • Créez un histogramme pour visualiser la distribution des âges des clients.
    • Analysez s'il y a des groupes d'âge qui sont plus prévalents parmi les clients.
  2. Distribution du genre :
    • Utilisez un diagramme en barres pour visualiser le nombre de clients par genre.
    • Déterminez la proportion d'hommes par rapport aux femmes.
  3. Distribution du niveau de revenu :
    • Créez un diagramme en barres pour montrer le nombre de clients par différents niveaux de revenu (par exemple, bas, moyen, élevé).
    • Identifiez quel groupe de revenu constitue la majorité de la base de clients.

Pour chaque graphique, ajoutez un titre et si nécessaire changez les étiquettes sur les axes x et y

Tâche 4 : Sauvegarder les graphiques

Sauvegardez chaque graphique dans le dossier exercise.

Solution

Voir la solution

Charger et inspecter les données

python
# Load library
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_csv('customers_cleaned.csv')
df[['age','gender','income_level']].info()

Voir la solution

Visualiser les données démographiques des clients

  • Âge :

    python
    # Set up the figure
    plt.figure(figsize=[10, 6])
    sns.histplot(x='age', data=df, bins=10, kde=True, color='skyblue')
    plt.title('Age Distribution of Customers')
    plt.xlabel('Age')
    plt.ylabel('Frequency')
    plt.savefig('age_distribution_of_customers.png')
    
    
Voir la solution
  • Genre :

    python
    # Plot the gender distribution
    plt.figure(figsize=(8, 6))
    sns.countplot(x='gender', data=df, hue='gender', palette='pastel')
    plt.title('Gender Distribution of Customers')
    plt.xlabel('Gender')
    plt.ylabel('Number of Customers')
    plt.savefig('gender_distribution.png')
    
    
Voir la solution
  • Niveau de revenu :

    python
    # Plot the gender distribution
    plt.figure(figsize=(8, 6))
    sns.countplot(x='income_level', data=df, hue='income_level', palette='pastel')
    plt.title('Income Level Distribution of Customers')
    plt.xlabel('Income Level')
    plt.ylabel('Number of Customers')
    plt.savefig('income_distribution.png')
    
    

Dans de nombreux cas, vous pourriez être intéressé par la relation entre deux variables. Nous pouvons répondre à des questions comme :

Par exemple :

  1. Les étudiants passent-ils plus d'heures sur les cours faciles ?
  2. Les étudiants plus jeunes passent-ils plus d'heures sur les cours ?
  3. Quelle proportion d'étudiants termine chaque niveau de difficulté ?

Selon les types de variables qui nous intéressent, nous devons nous appuyer sur différents types de visualisations.

Variables quantitatives et catégorielles

Une option pour étudier la relation entre une variable quantitative et une variable catégorielle est les boîtes à moustaches côte à côte.

Par exemple, supposons que nous voulions comprendre si les étudiants passent différentes quantités de temps sur des cours de difficulté variable. Nous pourrions aborder cette question en traçant des boîtes à moustaches côte à côte des heures passées par difficulté de cours :

python
sns.boxplot(x='CourseDifficulty', y='HoursSpent', data=df_students, palette='Accent')
plt.ylabel('Hours Spent')
plt.title('Hours Spent by Course Difficulty')

Le graphique révèle des différences minimales dans la médiane des heures passées et l'intervalle interquartile à travers les niveaux de difficulté des cours. Cela suggère que la difficulté perçue n'affecte pas significativement l'engagement en temps global pour la plupart des étudiants. Cependant, les valeurs aberrantes dans certaines catégories de difficulté pourraient indiquer un besoin de soutien personnalisé ou de ressources supplémentaires pour répondre aux besoins d'apprentissage divers.

Nous pourrions également étudier la même question plus en détail en regardant les histogrammes des heures passées par difficulté de cours :

python
# Create histograms of Hours Spent for each Course Difficulty level with subplots and "Count" on the y-axis
plt.figure(figsize=(12, 8))

# Plot histogram for 'Easy' course difficulty
plt.subplot(nrows=3, ncols=1, index=1)
sns.histplot(df_students[df_students['CourseDifficulty'] == 'Easy']['HoursSpent'], bins=10, color='lightgreen')
plt.title('Hours Spent for Easy Courses')
plt.xlabel('Hours Spent')
plt.ylabel('Count')

# Plot histogram for 'Medium' course difficulty
plt.subplot(3, 1, 2)
sns.histplot(df_students[df_students['CourseDifficulty'] == 'Medium']['HoursSpent'], bins=10, color='skyblue')
plt.title('Hours Spent for Medium Courses')
plt.xlabel('Hours Spent')
plt.ylabel('Count')

# Plot histogram for 'Hard' course difficulty
plt.subplot(3, 1, 3)
sns.histplot(df_students[df_students['CourseDifficulty'] == 'Hard']['HoursSpent'], bins=10, color='salmon')
plt.title('Hours Spent for Hard Courses')
plt.xlabel('Hours Spent')
plt.ylabel('Count')

plt.tight_layout()

La fonction plt.subplot() arrange plusieurs graphiques dans une grille au sein d'une seule figure. Les paramètres nrows et ncols définissent les lignes et colonnes de la grille, tandis que index détermine la position du sous-graphique actuel. Par exemple, plt.subplot(nrows=3, ncols=1, index=1) place un sous-graphique dans la première position d'une grille de 3 lignes et 1 colonne.

La fonction plt.tight_layout() ajuste l'espacement des sous-graphiques pour éviter le chevauchement et s'assurer que tous les graphiques sont visibles et bien arrangés.

Deux variables quantitatives

Un nuage de points est une excellente option pour étudier la relation entre deux variables quantitatives. Par exemple, si nous voulons explorer la relation entre Age et HoursSpent, nous pourrions créer un nuage de points de ces deux variables :

python
# Create a scatter plot for Age vs. Hours Spent
plt.figure(figsize=(8, 6))
sns.scatterplot(x='Age', y='HoursSpent', data=df_students, marker='o', s=100, color='dodgerblue', edgecolor='black', alpha=0.7)
plt.ylabel('Hours Spent')
plt.title('Scatter Plot of Age vs. Hours Spent')

Chaque point est représenté par un cercle (marker='o') avec une taille spécifique (s=100). Les cercles ont une légère transparence (alpha=0.7) et des bordures noires pour une meilleure visibilité (edgecolor='black').

Les points sont assez dispersés sur le graphique, indiquant qu'il n'y a pas de forte relation linéaire entre l'âge et les heures passées. Cela suggère que les étudiants de différents âges ont tendance à passer des quantités de temps variables sur la plateforme, sans schéma clair liant directement l'âge au temps passé.

Une autre option de graphique pour étudier la relation entre deux variables quantitatives est un graphique en ligne. Seaborn fournit une belle fonction à utiliser pour cela.

Un pairplot dans Seaborn est un outil de visualisation puissant qui crée une grille de nuages de points montrant les relations entre plusieurs variables dans un jeu de données. C'est particulièrement utile pour explorer les corrélations et les distributions à travers plusieurs caractéristiques simultanément.

Pour créer un pairplot en utilisant Seaborn, vous pouvez utiliser le code suivant :

python
sns.pairplot(df_students)

paiplot

Voici comment fonctionne un pairplot :

  • Il crée une grille où chaque variable numérique dans le jeu de données est tracée contre toutes les autres variables.
  • La diagonale de cette grille montre la distribution de chaque variable (généralement comme un histogramme ou un graphique de densité de noyau).
  • Les cellules hors diagonale montrent des nuages de points des relations entre différentes paires de variables.

Deux variables catégorielles

Les diagrammes en barres côte à côte (ou empilés) sont utiles pour visualiser la relation entre deux variables catégorielles. Par exemple, supposons que nous voulions déterminer si les cours "Difficiles" ont des taux de complétion significativement plus bas que les cours "Faciles" ou "Moyens". Nous pourrions tracer un diagramme en barres côte à côte comme suit :

python
plt.figure(figsize=(8, 6))
sns.countplot(x='CourseDifficulty', hue='CompletionStatus', data=df_students, palette='pastel')
plt.xlabel('Course Difficulty')
plt.ylabel('Count')
plt.title('Student Enrollment by Course Difficulty and Completion Status')

Récapitulatif

Les différentes visualisations présentées ici permettent d’explorer diverses relations entre deux variables selon leur nature :

  • Boîtes à moustaches : Idéales pour comparer une variable quantitative selon des catégories. Elles permettent de visualiser la médiane, l’étendue et la dispersion des données. Utiles pour comparer la répartition du temps passé selon la difficulté du cours.
  • Histogrammes : Offrent une vue plus détaillée de la distribution d’une variable quantitative selon une variable catégorielle. Ils sont particulièrement utiles pour identifier des tendances ou des anomalies dans chaque sous-groupe.
  • Nuage de points : Représente la relation entre deux variables quantitatives. Il est utile pour détecter des tendances, corrélations ou groupes distincts dans les données, comme la relation entre l’âge et le temps passé.
  • Pairplot : Permet une analyse exploratoire approfondie en affichant toutes les relations possibles entre plusieurs variables quantitatives, facilitant ainsi la détection de corrélations ou de regroupements.
  • Diagrammes en barres côte à côte : Comparent la fréquence de deux variables catégorielles et sont particulièrement utiles pour analyser des tendances ou des disparités dans la distribution des catégories.

Autres visualisations utiles non mentionnées :

  • Heatmap (carte thermique) : Affiche les corrélations entre plusieurs variables quantitatives sous forme de matrice colorée, idéale pour identifier des relations fortes ou faibles entre différentes caractéristiques.
  • Violin plot : Combine boîte à moustaches et estimation de densité pour mieux représenter la distribution des données et les valeurs extrêmes.
  • Bubble chart : Variante du nuage de points où la taille des points représente une troisième variable, facilitant l’analyse multidimensionnelle.
  • Diagramme en barres empilé : Utile lorsque l’on veut représenter la proportion de différentes sous-catégories dans une catégorie principale, comme la répartition des statuts de complétion selon la difficulté des cours.

Ces outils permettent d’explorer efficacement des relations entre variables et d’adapter les visualisations selon la nature des données et les questions à résoudre.

Exercice

Visualisation de la performance des ventes

Votre responsable veut comprendre comment différentes périodes temporelles impactent la performance des ventes. Pour soutenir cela, vous créerez des visualisations qui explorent la relation entre les caractéristiques liées au temps (comme le mois, le jour de la semaine et le trimestre) et les ventes.

Jeu de données :

Utilisez le jeu de données complete_data_with_time_features.csv :paperclip: complete_data_with_time_features.csv qui contient les transactions de vente, incluant les colonnes suivantes :

  • price : Le prix du produit vendu.
  • quantity : La quantité du produit vendu.
  • month : Le mois de la transaction.
  • weekday : Le jour de la semaine (par exemple, Monday, Tuesday).
  • quarter : Le trimestre de l'année (1, 2, 3, ou 4).
  • is_Weekend : Une caractéristique binaire indiquant si la date de transaction tombe un weekend.

Assurez-vous de copier complete_data_with_time_features.csv dans le dossier exercise du dossier Exploratory_Analytics_Visualisation

Tâche 1 : Configurer votre Notebook

Ouvrez un nouveau notebook Jupyter nommé bivariate_data_visualisation.ipynb dans le dossier exercise folder du dossier Exploratory_Analytics_Visualisation.

Tâche 2 : Charger et inspecter les données

  1. Chargez le jeu de données complete_data_with_time_features.csv dans un DataFrame pandas.
  2. Créez une colonne appelée sales_amount en multipliant les colonnes price et quantity.

Tâche 3 : Visualiser la performance des ventes par périodes temporelles

  1. Ventes par mois :
    • Créez une boîte à moustaches pour visualiser la distribution de sales_amount par month.
    • Ajoutez Titre et Étiquettes du Graphique :
      • Titre : "Sales by Month"
      • Étiquette axe X : "Month"
      • Étiquette axe Y : "Sales Amount"
  2. Ventes par jour de la semaine :
    • Créez une boîte à moustaches pour visualiser la distribution de sales_amount par weekday.
    • Ajoutez Titre et Étiquettes du Graphique :
      • Titre : "Sales by Weekday"
      • Étiquette axe X : "Weekday"
      • Étiquette axe Y : "Sales Amount"
  3. Ventes par trimestre :
    • Créez une boîte à moustaches pour visualiser la distribution de sales_amount par quarter.
    • Ajoutez Titre et Étiquettes du Graphique :
      • Titre : "Sales by Quarter"
      • Étiquette axe X : "Quarter"
      • Étiquette axe Y : "Sales Amount"
  4. Ventes le week-end vs. en semaine :
    • Créez une boîte à moustaches pour visualiser la distribution de sales_amount par is_weekend.
    • Ajoutez titre et étiquettes du graphique :
      • Titre : "Sales Weekends vs. Weekdays"
      • Étiquette axe X : "Is Weekend"
      • Étiquette axe Y : "Sales Amount"

Tâche 4 : Sauvegarder et documenter vos résultats

Sauvegardez chaque graphique dans le dossier exercise.

Solution

Voir la solution

Charger et inspecter les données

python
# import necessary library
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# read data into a dataframe
df = pd.read_csv('complete_data_with_time_features.csv')

# Create sales_amount
df['sales_amount'] = df['price'] * df['quantity']

# inspect info
df.info()

Voir la solution

Visualiser la performance des ventes par périodes temporelles

  • Ventes par Mois

    python
    plt.figure(figsize=[8,6])
    sns.boxplot(y='sales_amount',x='month', data=df, hue='month', palette='viridis')
    plt.title("Total Sales by Month")
    plt.xlabel("Month")
    plt.ylabel('Sales Amount')
    plt.savefig('sales_amount_month.png',dpi=500)
    
    
Voir la solution
  • Ventes par Jour de la Semaine

    python
    plt.figure(figsize=[8,6])
    sns.boxplot(y='sales_amount',x='weekday', data=df, hue='weekday', palette='viridis')
    plt.title("Sales by Week")
    plt.xlabel("Week")
    plt.ylabel('Sales Amount')
    plt.savefig('sales_amount_week.png',dpi=500)
    
    
Voir la solution
  • Ventes par Trimestre

    python
    plt.figure(figsize=[8,6])
    sns.boxplot(y='sales_amount',x='quarter', data=df_all, hue='quarter', palette='viridis')
    plt.title("Sales by Quarter")
    plt.xlabel("Quarter")
    plt.ylabel('Sales Amount')
    plt.savefig('sales_amount_quarter.png',dpi=500)
    
    
Voir la solution
  • Ventes le Week-end vs. en Semaine

    python
    plt.figure(figsize=[8,6])
    sns.boxplot(y='sales_amount',x='is_weekend', data=df_all, hue='is_weekend', palette='viridis')
    plt.title("Sales Weekends vs. Weekdays")
    plt.xlabel("Is Weekend")
    plt.ylabel('Sales Amount')
    plt.savefig('sales_amount_is_weekday.png',dpi=500)
    
    

Parfois, vous pouvez vouloir explorer les relations entre trois variables ou plus dans une seule visualisation. De nombreuses méthodes de visualisation introduites précédemment peuvent incorporer des variables supplémentaires en utilisant des indices visuels comme les couleurs, les formes et les motifs.

Par exemple, nous pouvons étudier la relation entre les heures passées, l'âge et le statut de complétion en utilisant la couleur pour introduire notre troisième variable :

python
# Create a scatter plot for Age vs. Hours Spent with Completion Status as the color
plt.figure(figsize=(8, 6))
sns.scatterplot(x='Age', y='HoursSpent', data=df_students, hue='CompletionStatus', palette='Set1', marker='o', s=100, edgecolor='black', alpha=0.7)
plt.ylabel('Hours Spent')
plt.title('Scatter Plot of Age vs. Hours Spent Colored by Completion Status')
plt.legend(title='Completion Status')
plt.savefig(fname='myplot.png',dpi=500)
plt.show()

La fonction plt.legend() ajoute une légende au graphique, étiquetant la boîte de légende avec "Completion Status" via le paramètre title. Cette légende clarifie ce que représentent les couleurs ou les marqueurs du graphique, indiquant les différents statuts de complétion des étudiants.

La fonction plt.savefig() sauvegarde la figure actuelle dans un fichier. Le paramètre fname spécifie le nom du fichier ou le chemin, tandis que dpi détermine la résolution de l'image en points par pouce. Un dpi plus élevé donne une meilleure résolution. Cette fonction supporte divers formats comme PNG, PDF et SVG, idéaux pour des visuels de haute qualité dans les rapports ou les présentations.

Bien qu'il soit possible d'ajouter encore plus d'informations à ce graphique—par exemple, en utilisant des triangles et des carrés pour indiquer le genre—ce n'est pas toujours judicieux de surcharger une seule visualisation.

Heat Map (Carte de chaleur)

Une carte de chaleur est une visualisation graphique qui permet d’afficher les valeurs d’une matrice sous forme de couleurs. Lorsqu’elle est appliquée à une matrice de corrélation, elle permet d’analyser les relations entre plusieurs variables quantitatives.

Le coefficient de corrélation de Pearson est souvent utilisé pour mesurer ces relations. Il varie entre -1 et 1 :

  • 1 : Corrélation positive parfaite (les deux variables augmentent ensemble).
  • 0 : Aucune corrélation (pas de lien linéaire).
  • 1 : Corrélation négative parfaite (quand une variable augmente, l’autre diminue).

Exemple de code en Python :

python
correlation_matrix = df_students[['Age', 'HoursSpent']].corr()

plt.figure(figsize=(6, 4))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Correlation Heatmap of Age and Hours Spent')
plt.show()

Explication du code :

1. Calcul de la matrice de corrélation :

  • La fonction .corr() extrait la corrélation entre Age et HoursSpent.

2. Affichage de la carte de chaleur avec Seaborn :

  • sns.heatmap(correlation_matrix, annot=True) affiche la matrice sous forme de heatmap et ajoute les valeurs numériques.
  • cmap='coolwarm' applique une échelle de couleurs où le bleu représente une corrélation négative et le rouge une corrélation positive.
  • fmt='.2f' formate les valeurs avec deux décimales.
  • plt.figure(figsize=(6, 4)) ajuste la taille du graphique.
  • plt.title(...) ajoute un titre clair.

Cette représentation visuelle facilite l’identification des corrélations fortes ou faibles entre les variables, ce qui peut être utile pour l’analyse des données et la prise de décisions.

Excellent travail ! Vous avez exploré diverses techniques de visualisation exploratoire des données à l'aide de bibliothèques Python comme Matplotlib et Seaborn, vous concentrant sur la visualisation des distributions, des relations et des modèles dans vos données.

Vous savez maintenant comment visualiser la distribution des variables catégorielles à l'aide d'un graphique à barres.

Vous avez également appris à utiliser un histogramme pour visualiser la distribution des variables continues. En divisant les données en intervalles, un histogramme vous aide à voir la forme, la dispersion et la tendance centrale des données, ce qui facilite l'identification des modèles ou des anomalies.

La leçon a couvert l'utilisation d'un nuage de points pour explorer les relations entre deux variables continues.

Vous vous êtes entraîné à utiliser un diagramme en boîte à moustaches pour comparer la distribution d'une variable continue dans différentes catégories. Le diagramme en boîte à moustaches fournit un résumé visuel de la médiane, des quartiles et des valeurs aberrantes potentielles, vous aidant à comparer la dispersion et la tendance centrale des données dans plusieurs groupes.

Vous pouvez consulter la documentation officielle de Matplotlib et de Seaborn ainsi que les cheatsheets officielles de Matplotlib pour approfondir les notions exposées ici, vous inspirer des possibilités offertes par ces librairies et explorer les différentes options disponibles pour chaque type de graphique.

Continuez votre excellent travail dans votre parcours de données !