Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Création de Sous-Graphiques | Section
Visualisation de Données avec Matplotlib

bookCréation de Sous-Graphiques

La fonction subplots() de pyplot est utilisée pour créer plusieurs graphiques dans une seule figure. Vous l'avez déjà vue lors de la création d'un canevas ; nous l'examinons maintenant plus en détail.

Lignes et colonnes

Les arguments principaux sont nrows et ncolumns, qui définissent la grille des sous-graphiques. Par défaut, les deux valent 1, produisant un seul objet Axes.

subplots() retourne une Figure et soit un objet Axes, soit un tableau d'objets Axes, selon la disposition.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Une grille de sous-graphiques de 2 par 2 a été créée.

Note
Remarque

Puisqu'il y a plusieurs sous-graphiques, subplots renvoie un tableau d'objets Axes, généralement stocké dans une variable appelée axs (le singulier ax est utilisé pour un seul graphique).

Dans ce cas, axs est un tableau à deux dimensions, il faut donc à la fois un indice de ligne et un indice de colonne pour accéder à un sous-graphique spécifique.

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

La première ligne contient deux graphiques linéaires ; la seconde ligne contient deux nuages de points. Chaque graphique doit être tracé en utilisant la méthode de l'objet Axes correspondant, et non plt.plot() ou plt.scatter().

Conversion en tableau 1D

Vous pouvez aplatir le tableau 2D d'Axes en utilisant .ravel() pour simplifier l'indexation :

123456789
fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Avec un tableau 2x2, axs.ravel() le convertit en un tableau 1D contenant quatre éléments.

Partage d'un axe

La fonction subplots() possède également les paramètres sharex et sharey. Ils contrôlent si les axes x ou y sont partagés entre les sous-graphiques. Les deux sont définis sur False par défaut.

123456789
fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Définir sharex=True permet de partager l’axe des abscisses entre tous les sous-graphiques. Il est également possible de passer 'row' ou 'col' pour ne partager les axes qu’au sein des lignes ou des colonnes.

Note
Approfondir

Comme d’habitude, n’hésitez pas à explorer davantage la subplots() documentation si vous le souhaitez.

Tâche

Swipe to start coding

  1. Utiliser la fonction appropriée pour créer une grille de sous-graphiques.
  2. La grille doit comporter 3 lignes et 1 colonne (spécifier les deux premiers paramètres).
  3. Spécifier l'argument de mot-clé le plus à droite afin que l'axe des x soit partagé entre tous les sous-graphiques.
  4. Stocker le résultat de la fonction de création des sous-graphiques dans les variables fig et axs (de gauche à droite).
  5. Placer le premier graphique linéaire pour data_linear sur la première ligne (ligne 0) de la grille de sous-graphiques.
  6. Placer le deuxième graphique linéaire pour data_squared sur la deuxième ligne (ligne 1) de la grille de sous-graphiques.
  7. Placer le troisième graphique linéaire pour data_exp sur la troisième ligne (ligne 2) de la grille de sous-graphiques.

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 14
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

close

bookCréation de Sous-Graphiques

Glissez pour afficher le menu

La fonction subplots() de pyplot est utilisée pour créer plusieurs graphiques dans une seule figure. Vous l'avez déjà vue lors de la création d'un canevas ; nous l'examinons maintenant plus en détail.

Lignes et colonnes

Les arguments principaux sont nrows et ncolumns, qui définissent la grille des sous-graphiques. Par défaut, les deux valent 1, produisant un seul objet Axes.

subplots() retourne une Figure et soit un objet Axes, soit un tableau d'objets Axes, selon la disposition.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Une grille de sous-graphiques de 2 par 2 a été créée.

Note
Remarque

Puisqu'il y a plusieurs sous-graphiques, subplots renvoie un tableau d'objets Axes, généralement stocké dans une variable appelée axs (le singulier ax est utilisé pour un seul graphique).

Dans ce cas, axs est un tableau à deux dimensions, il faut donc à la fois un indice de ligne et un indice de colonne pour accéder à un sous-graphique spécifique.

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

La première ligne contient deux graphiques linéaires ; la seconde ligne contient deux nuages de points. Chaque graphique doit être tracé en utilisant la méthode de l'objet Axes correspondant, et non plt.plot() ou plt.scatter().

Conversion en tableau 1D

Vous pouvez aplatir le tableau 2D d'Axes en utilisant .ravel() pour simplifier l'indexation :

123456789
fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Avec un tableau 2x2, axs.ravel() le convertit en un tableau 1D contenant quatre éléments.

Partage d'un axe

La fonction subplots() possède également les paramètres sharex et sharey. Ils contrôlent si les axes x ou y sont partagés entre les sous-graphiques. Les deux sont définis sur False par défaut.

123456789
fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Définir sharex=True permet de partager l’axe des abscisses entre tous les sous-graphiques. Il est également possible de passer 'row' ou 'col' pour ne partager les axes qu’au sein des lignes ou des colonnes.

Note
Approfondir

Comme d’habitude, n’hésitez pas à explorer davantage la subplots() documentation si vous le souhaitez.

Tâche

Swipe to start coding

  1. Utiliser la fonction appropriée pour créer une grille de sous-graphiques.
  2. La grille doit comporter 3 lignes et 1 colonne (spécifier les deux premiers paramètres).
  3. Spécifier l'argument de mot-clé le plus à droite afin que l'axe des x soit partagé entre tous les sous-graphiques.
  4. Stocker le résultat de la fonction de création des sous-graphiques dans les variables fig et axs (de gauche à droite).
  5. Placer le premier graphique linéaire pour data_linear sur la première ligne (ligne 0) de la grille de sous-graphiques.
  6. Placer le deuxième graphique linéaire pour data_squared sur la deuxième ligne (ligne 1) de la grille de sous-graphiques.
  7. Placer le troisième graphique linéaire pour data_exp sur la troisième ligne (ligne 2) de la grille de sous-graphiques.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 14
single

single

some-alt