Positionnement des titres de graphiques Matplotlib

MatplotlibMatplotlibBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à positionner les titres sur les graphiques créés avec Matplotlib. Les titres des graphiques aident les spectateurs à comprendre les informations que la visualisation transmet. Matplotlib propose plusieurs options pour positionner ces titres - centré (par défaut), aligné à gauche, aligné à droite ou avec un positionnement vertical personnalisé.

À la fin de ce laboratoire, vous serez en mesure de :

  • Créer un graphique de base avec un titre centré
  • Positionner les titres à gauche ou à droite d'un graphique
  • Créer un graphique avec le titre à une position personnalisée
  • Utiliser différentes méthodes pour ajuster le positionnement du titre

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlotCustomizationGroup(["Plot Customization"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") matplotlib/AdvancedPlottingGroup -.-> matplotlib/subplots("Subplots") matplotlib/PlotCustomizationGroup -.-> matplotlib/titles_labels("Adding Titles and Labels") matplotlib/AdvancedTopicsGroup -.-> matplotlib/matplotlib_config("Customizing Matplotlib Configurations") subgraph Lab Skills matplotlib/line_plots -.-> lab-48998{{"Positionnement des titres de graphiques Matplotlib"}} matplotlib/subplots -.-> lab-48998{{"Positionnement des titres de graphiques Matplotlib"}} matplotlib/titles_labels -.-> lab-48998{{"Positionnement des titres de graphiques Matplotlib"}} matplotlib/matplotlib_config -.-> lab-48998{{"Positionnement des titres de graphiques Matplotlib"}} end

Traçage de base avec position de titre par défaut

Dans cette étape, vous allez créer un simple graphique linéaire et ajouter un titre centré, qui est la position par défaut dans Matplotlib.

Création d'un cahier Jupyter

Une fois le démarrage de la machine virtuelle (VM) terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook et accéder à Jupyter Notebook.

click-notebook

Vous devrez peut-être attendre quelques secondes que Jupyter Notebook finisse de charger. En raison des limitations de Jupyter Notebook, la validation des opérations ne peut pas être automatisée.

Si vous rencontrez des problèmes pendant le laboratoire, n'hésitez pas à demander de l'aide à Labby. Veuillez fournir des commentaires après la session afin que nous puissions résoudre rapidement tout problème.

Importation de Matplotlib

Maintenant, commençons par importer la bibliothèque Matplotlib. Dans la première cellule de votre cahier, tapez le code suivant et exécutez - le en appuyant sur Shift+Enter :

import matplotlib.pyplot as plt

Cela importe le module pyplot de Matplotlib et lui attribue l'alias plt, qui est une convention courante.

Création d'un graphique simple

Ensuite, créons un graphique linéaire de base. Dans une nouvelle cellule, entrez le code suivant et exécutez - le :

plt.figure(figsize=(8, 5))  ## Create a figure with a specific size
plt.plot(range(10))         ## Plot numbers from 0 to 9
plt.grid(True)              ## Add a grid for better readability
plt.show()                  ## Display the plot

Vous devriez voir un simple graphique linéaire avec des valeurs de 0 à 9 affichées dans la sortie.

line-plot

Ajout d'un titre par défaut (centré)

Maintenant, ajoutons un titre à notre graphique. La position par défaut d'un titre est centrée en haut du graphique. Dans une nouvelle cellule, entrez le code suivant :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('My First Matplotlib Plot')  ## Add a centered title
plt.show()
line-plot-with-title

Exécutez la cellule, et vous devriez voir le graphique avec un titre centré en haut.

La fonction title() sans aucun paramètre supplémentaire placera le titre au centre, qui est la position par défaut.

Positionnement des titres à gauche et à droite

Matplotlib vous permet de positionner le titre à gauche ou à droite du graphique en utilisant le paramètre loc. Dans cette étape, vous apprendrez à aligner les titres sur le côté gauche et le côté droit de vos graphiques.

Création d'un graphique avec un titre aligné à gauche

Créons un graphique avec le titre positionné sur le côté gauche. Dans une nouvelle cellule, entrez le code suivant :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Left-Aligned Title', loc='left')  ## Position the title at the left
plt.show()
left-aligned-title

Exécutez la cellule. Remarquez comment le titre apparaît maintenant aligné avec le bord gauche du graphique, plutôt que centré.

Le paramètre loc dans la fonction title() détermine la position horizontale du titre. En définissant loc='left', vous indiquez à Matplotlib de positionner le titre sur le côté gauche du graphique.

Création d'un graphique avec un titre aligné à droite

Maintenant, créons un autre graphique avec le titre positionné sur le côté droit. Dans une nouvelle cellule, entrez le code suivant :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Right-Aligned Title', loc='right')  ## Position the title at the right
plt.show()
right-aligned-title

Exécutez la cellule. Le titre devrait maintenant apparaître aligné avec le bord droit du graphique.

Comparaison des différentes positions de titre

Créons une série de trois graphiques pour comparer les différentes positions de titre (centré, à gauche et à droite). Dans une nouvelle cellule, entrez le code suivant :

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Center-aligned title (default)
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Center Title')

## Plot 2: Left-aligned title
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Left Title', loc='left')

## Plot 3: Right-aligned title
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Right Title', loc='right')

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()
three-title-positions

Exécutez la cellule pour voir les trois positions de titre côte à côte. Cette comparaison visuelle vous aide à comprendre comment le paramètre loc affecte le positionnement du titre.

Notez que lorsque vous travaillez avec des sous - graphiques, nous utilisons la méthode set_title() sur les objets d'axe individuels plutôt que la fonction globale plt.title().

Positionnement vertical personnalisé des titres

Parfois, vous pourriez vouloir ajuster la position verticale de votre titre. Dans cette étape, vous apprendrez à contrôler manuellement la position verticale (axe des y) des titres de vos graphiques.

Comprendre la position en y des titres

La position verticale d'un titre peut être ajustée en utilisant le paramètre y dans la fonction title(). Le paramètre y accepte des valeurs en coordonnées normalisées, où :

  • y = 1.0 (par défaut) place le titre en haut du graphique
  • y > 1.0 place le titre au - dessus du haut du graphique
  • y < 1.0 place le titre en dessous du haut du graphique, le rapprochant du contenu du graphique

Création d'un graphique avec une position en y personnalisée pour le titre

Créons un graphique avec le titre positionné plus haut que la position par défaut. Dans une nouvelle cellule, entrez le code suivant :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Higher Title Position', y=1.1)  ## Position the title higher
plt.show()

Exécutez la cellule. Remarquez comment le titre apparaît maintenant légèrement plus haut au - dessus du graphique par rapport à la position par défaut.

Maintenant, créons un graphique avec le titre positionné plus bas que la position par défaut :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Lower Title Position', y=0.9)  ## Position the title lower
plt.show()

Exécutez la cellule. Le titre devrait maintenant apparaître plus proche du contenu du graphique.

Comparaison de différentes positions en y

Créons plusieurs graphiques côte à côte pour comparer différentes positions verticales de titre :

## Create a figure with 3 subplots arranged horizontally
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

## Plot 1: Default Y-position
axes[0].plot(range(10))
axes[0].grid(True)
axes[0].set_title('Default Position (y=1.0)')

## Plot 2: Higher Y-position
axes[1].plot(range(10))
axes[1].grid(True)
axes[1].set_title('Higher Position', y=1.15)

## Plot 3: Lower Y-position
axes[2].plot(range(10))
axes[2].grid(True)
axes[2].set_title('Lower Position', y=0.85)

plt.tight_layout()  ## Adjust spacing between subplots
plt.show()

Exécutez la cellule pour voir les trois positions verticales côte à côte. Cette comparaison vous aide à comprendre comment le paramètre y affecte la position verticale du titre.

Combinaison du positionnement horizontal et vertical

Vous pouvez combiner le paramètre loc (pour l'alignement horizontal) avec le paramètre y (pour la position verticale) pour placer votre titre exactement là où vous le voulez :

plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Custom Positioned Title', loc='right', y=1.1)  ## Right-aligned and higher
plt.show()

Exécutez la cellule. Le titre devrait maintenant apparaître aligné avec le bord droit du graphique et positionné plus haut que la position par défaut.

Positionnement avancé des titres avec des sous - graphiques

Dans cette étape, vous apprendrez des techniques avancées de positionnement des titres lorsque vous travaillez avec des mises en page de sous - graphiques et des objets d'axe. Vous apprendrez également à utiliser la fonction suptitle() pour ajouter un titre global à une figure avec plusieurs sous - graphiques.

Création d'une figure avec des sous - graphiques et des titres individuels

Créons une grille de sous - graphiques 2x2, chacun avec son propre titre positionné différemment :

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data and set titles with different positions for each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)

## Top-left subplot: Default centered title
axes[0].set_title('Default (Centered)')

## Top-right subplot: Left-aligned title
axes[1].set_title('Left-Aligned', loc='left')

## Bottom-left subplot: Right-aligned title
axes[2].set_title('Right-Aligned', loc='right')

## Bottom-right subplot: Custom positioned title
axes[3].set_title('Custom Position', y=0.85, loc='center')

## Add spacing between subplots
plt.tight_layout()
plt.show()

Exécutez la cellule. Vous devriez voir quatre sous - graphiques, chacun avec un titre positionné différemment.

Ajout d'un titre au niveau de la figure avec suptitle()

Lorsque vous travaillez avec plusieurs sous - graphiques, vous pourriez vouloir ajouter un titre global pour l'ensemble de la figure. Cela peut être fait en utilisant la fonction suptitle() :

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1}')

## Add an overall title to the figure
fig.suptitle('Multiple Subplots with an Overall Title', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Exécutez la cellule. Vous devriez voir quatre sous - graphiques, chacun avec son propre titre, et un titre global pour la figure en haut.

Combinaison de titres d'axes et de titres de figure

Vous pouvez combiner des titres de sous - graphiques individuels avec un titre global de figure :

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Plot data on each subplot with different title positions
axes[0, 0].plot(range(10))
axes[0, 0].grid(True)
axes[0, 0].set_title('Centered Title', loc='center')

axes[0, 1].plot(range(10))
axes[0, 1].grid(True)
axes[0, 1].set_title('Left-Aligned Title', loc='left')

axes[1, 0].plot(range(10))
axes[1, 0].grid(True)
axes[1, 0].set_title('Right-Aligned Title', loc='right')

axes[1, 1].plot(range(10))
axes[1, 1].grid(True)
axes[1, 1].set_title('Lower Title', y=0.85)

## Add an overall title to the figure
fig.suptitle('Advanced Title Positioning Demo', fontsize=16)

## Add spacing between subplots
plt.tight_layout()
## Add top spacing for the suptitle
plt.subplots_adjust(top=0.9)
plt.show()

Exécutez la cellule. Vous devriez voir une figure avec quatre sous - graphiques, chacun avec un titre positionné différemment, et un titre global en haut de la figure.

La fonction suptitle() est utile pour ajouter un titre principal qui décrit l'ensemble de la figure, tandis que les appels individuels de set_title() sur les objets d'axe ajoutent des titres plus spécifiques à chaque sous - graphique.

Positionnement global des titres avec RCParams

Dans cette étape finale, vous apprendrez à utiliser les paramètres de configuration runtime (RCParams) de Matplotlib pour définir des valeurs par défaut globales pour le positionnement des titres. Cela est utile lorsque vous souhaitez que tous les graphiques de votre notebook ou de votre script utilisent un positionnement de titre cohérent sans avoir à le spécifier pour chaque graphique individuellement.

Comprendre les RCParams dans Matplotlib

Le comportement de Matplotlib peut être personnalisé à l'aide d'une variable semblable à un dictionnaire appelée rcParams. Cela vous permet de définir des valeurs par défaut globales pour diverses propriétés, y compris le positionnement des titres.

Définition du positionnement global des titres avec rcParams

Définissons des valeurs par défaut globales pour le positionnement des titres, puis créons quelques graphiques qui utiliseront automatiquement ces paramètres :

## View the current default values
print("Default title y position:", plt.rcParams['axes.titley'])
print("Default title padding:", plt.rcParams['axes.titlepad'])

Exécutez la cellule pour voir les valeurs par défaut. Maintenant, modifions ces paramètres :

## Set new global defaults for title positioning
plt.rcParams['axes.titley'] = 1.05     ## Set title y position higher
plt.rcParams['axes.titlepad'] = 10     ## Set padding between title and plot
plt.rcParams['axes.titlelocation'] = 'left'  ## Set default alignment to left

## Create a plot that will use the new defaults
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Global RCParams Settings')
plt.show()

Exécutez la cellule. Remarquez comment le titre est positionné selon les paramètres globaux que nous avons définis, même si nous n'avons spécifié aucun paramètre de positionnement dans la fonction title().

Création de plusieurs graphiques avec les mêmes paramètres

Créons plusieurs graphiques qui utilisent tous nos paramètres globaux :

## Create a figure with a 2x2 grid of subplots
fig, axes = plt.subplots(2, 2, figsize=(10, 8))

## Flatten the 2D array of axes for easier iteration
axes = axes.flatten()

## Plot data on each subplot with titles that use global settings
for i, ax in enumerate(axes):
    ax.plot(range(10))
    ax.grid(True)
    ax.set_title(f'Subplot {i+1} Using Global Settings')

plt.tight_layout()
plt.show()

Exécutez la cellule. Tous les quatre titres de sous - graphiques devraient être positionnés selon les paramètres globaux que nous avons définis précédemment.

Réinitialisation des RCParams aux valeurs par défaut

Si vous souhaitez réinitialiser les RCParams à leurs valeurs par défaut, vous pouvez utiliser la fonction rcdefaults() :

## Reset to default settings
plt.rcdefaults()

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('This Title Uses Default Settings Again')
plt.show()

Exécutez la cellule. Le titre devrait maintenant être positionné en utilisant les paramètres par défaut de Matplotlib.

Changements temporaires des RCParams

Si vous souhaitez modifier temporairement les RCParams pour une section spécifique de votre code, vous pouvez utiliser un gestionnaire de contexte :

## Create a plot with default settings
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Default Settings')
plt.show()

## Temporarily change RCParams for just this section
with plt.rc_context({'axes.titlelocation': 'right', 'axes.titley': 1.1}):
    plt.figure(figsize=(8, 5))
    plt.plot(range(10))
    plt.grid(True)
    plt.title('Temporary Settings Change')
    plt.show()

## Create another plot that will use default settings again
plt.figure(figsize=(8, 5))
plt.plot(range(10))
plt.grid(True)
plt.title('Back to Default Settings')
plt.show()

Exécutez la cellule. Vous devriez voir trois graphiques :

  1. Le premier avec le positionnement de titre par défaut
  2. Le deuxième avec un titre aligné à droite et positionné plus haut (en raison des paramètres temporaires)
  3. Le troisième avec le positionnement de titre par défaut à nouveau (car les paramètres temporaires n'ont été appliqués qu'au sein du gestionnaire de contexte)

Cette approche vous permet de modifier temporairement les paramètres globaux sans affecter le reste de vos graphiques.

Résumé

Dans ce laboratoire (LabEx), vous avez appris à contrôler le positionnement des titres de graphiques dans Matplotlib :

  • Positionnement de base des titres : Vous avez créé des graphiques simples avec des titres centrés en utilisant le positionnement par défaut.

  • Positionnement horizontal : Vous avez appris à aligner les titres à gauche ou à droite d'un graphique en utilisant le paramètre loc.

  • Positionnement vertical : Vous avez découvert comment ajuster la position verticale des titres en utilisant le paramètre y, les plaçant plus haut ou plus bas par rapport au graphique.

  • Techniques avancées avec des sous - graphiques : Vous avez exploré comment positionner les titres sur des sous - graphiques individuels et comment ajouter un titre global à une figure en utilisant suptitle().

  • Paramètres globaux avec RCParams : Vous avez appris à définir des valeurs par défaut globales pour le positionnement des titres en utilisant les paramètres de configuration runtime de Matplotlib, permettant un style cohérent sur plusieurs graphiques.

Ces compétences vous aideront à créer des visualisations de données plus professionnelles et visuellement attrayantes, où les titres sont positionnés exactement là où vous le souhaitez. Le positionnement des titres est un aspect petit mais important de la visualisation de données efficace, aidant à guider l'attention de votre public et à améliorer la clarté globale de vos graphiques.

Pour approfondir vos connaissances, envisagez d'expérimenter avec d'autres options de personnalisation des titres telles que les propriétés de police, la rotation et les couleurs pour rendre vos visualisations encore plus percutantes.