Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Sous-Graphiques | Personnalisation des Graphiques
Visualisation Ultime Avec Python

Glissez pour afficher le menu

book
Sous-Graphiques

La fonction subplots() de pyplot répond précisément à cet objectif. Elle a déjà été utilisée pour créer une zone de dessin dans la première section, et sera maintenant examinée plus en détail.

Lignes et colonnes

Les arguments les plus importants de cette fonction sont nrows et ncolumns, qui définissent le nombre de lignes et de colonnes dans la grille de sous-graphiques. Par défaut, les deux valent 1, ce qui donne un seul graphique (Axes).

La fonction subplots() retourne un objet Figure et soit un objet Axes, soit un tableau d'objets Axes, selon la taille de la grille.

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 retourne 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 un indice de ligne et un indice de colonne pour accéder à un sous-graphique spécifique.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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 (ligne 0) contient deux graphiques linéaires, et la seconde ligne (ligne 1) contient deux nuages de points.

Puisque chaque graphique est placé sur un sous-graphe séparé, il n'est pas possible d'utiliser directement plt.plot() ou plt.scatter(). L'approche appropriée consiste à appeler la méthode correspondante sur chaque objet Axes individuel.

Conversion en tableau 1D

Il est également possible d'utiliser la méthode .ravel() pour convertir un tableau 2D d'objets Axes en un tableau aplati contigu 1D :

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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, ce qui est utile ici car tous utilisent les mêmes valeurs sur l’axe x.

Il est également possible de définir sharex ou sharey à 'row' pour partager l’axe au sein de chaque ligne de sous-graphiques, ou à 'col' pour le partager au sein de chaque colonne.

Note
Approfondir

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

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écifiez les deux premiers paramètres).
  3. Indiquer 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 3. Chapitre 6
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?

Demandez à l'IA

expand
ChatGPT

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

book
Sous-Graphiques

La fonction subplots() de pyplot répond précisément à cet objectif. Elle a déjà été utilisée pour créer une zone de dessin dans la première section, et sera maintenant examinée plus en détail.

Lignes et colonnes

Les arguments les plus importants de cette fonction sont nrows et ncolumns, qui définissent le nombre de lignes et de colonnes dans la grille de sous-graphiques. Par défaut, les deux valent 1, ce qui donne un seul graphique (Axes).

La fonction subplots() retourne un objet Figure et soit un objet Axes, soit un tableau d'objets Axes, selon la taille de la grille.

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 retourne 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 un indice de ligne et un indice de colonne pour accéder à un sous-graphique spécifique.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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 (ligne 0) contient deux graphiques linéaires, et la seconde ligne (ligne 1) contient deux nuages de points.

Puisque chaque graphique est placé sur un sous-graphe séparé, il n'est pas possible d'utiliser directement plt.plot() ou plt.scatter(). L'approche appropriée consiste à appeler la méthode correspondante sur chaque objet Axes individuel.

Conversion en tableau 1D

Il est également possible d'utiliser la méthode .ravel() pour convertir un tableau 2D d'objets Axes en un tableau aplati contigu 1D :

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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, ce qui est utile ici car tous utilisent les mêmes valeurs sur l’axe x.

Il est également possible de définir sharex ou sharey à 'row' pour partager l’axe au sein de chaque ligne de sous-graphiques, ou à 'col' pour le partager au sein de chaque colonne.

Note
Approfondir

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

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écifiez les deux premiers paramètres).
  3. Indiquer 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 3. Chapitre 6
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?
some-alt