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
course content

Contenu du cours

Visualisation Ultime Avec Python

Visualisation Ultime Avec Python

1. Introduction à Matplotlib
2. Création de Graphiques Couramment Utilisés
3. Personnalisation des Graphiques
4. Plus de Graphiques Statistiques
5. Tracé avec Seaborn

book
Sous-Graphiques

Jusqu'à présent, nous avons seulement créé plusieurs graphiques sur un seul objet Axes en utilisant plusieurs appels des fonctions de traçage (nous pouvons combiner différents types de graphiques).

Il est maintenant temps d'apprendre à créer plusieurs objets Axes et donc plusieurs graphiques sur différents objets Axes.

pyplot a une fonction subplots() exactement pour cet objectif. Nous avons déjà utilisé cette fonction lorsque nous avons créé une toile dans la première section, maintenant nous allons l'examiner plus en détail.

Lignes et Colonnes

Les deux arguments les plus importants de cette fonction sont nrows et ncolumns qui spécifient respectivement le nombre de lignes et de colonnes de la grille de sous-graphiques (leurs valeurs par défaut sont 1 et 1 résultant en un seul objet Axes).

subplots() renvoie un objet Figure et soit un objet Axes soit un tableau d'objets Axes.

Regardons un exemple :

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

Nous venons de créer une grille de sous-graphiques de 2 par 2.

Remarque

La fonction subplots ici renvoie un tableau d'objets Axes, car il y a plus d'un sous-graphe. Lorsqu'un tableau d'Axes est renvoyé, la variable pour le stocker est souvent appelée axs (ax est principalement utilisé pour un seul objet Axes).

axs dans notre cas est un tableau bidimensionnel, c'est pourquoi nous devons utiliser à la fois un indice de ligne et un indice de colonne pour accéder à un objet Axes particulier.

Créons quelques graphiques :

123456789101112
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 de la grille de sous-graphiques (ligne 0) a deux graphiques en ligne et la deuxième ligne (ligne 1) a deux graphiques de dispersion.

Rappelez-vous que nous ne pouvons pas utiliser plt.plot() ou plt.scatter() ici, car nous voulons placer chaque graphique sur un objet Axes séparé (sous-graphe).

Conversion en tableau 1D

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

1234567891011121314
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) # Converting axs to 1D array of 4 elements 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

Puisque nous avons un tableau 2x2, axs.ravel() renvoie un tableau 1D avec quatre éléments.

Partager un Axe

Deux autres paramètres importants de la fonction subplots() sont sharex et sharey qui spécifient si les propriétés doivent être partagées respectivement sur les axes x ou y. Ils ont tous deux une valeur par défaut de False. Changeons l'un d'eux dans notre exemple :

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Share x-axis among all the subplots fig, axs = plt.subplots(2, 2, sharex=True) # Converting axs to 1D array of 4 elements 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 la valeur True pour sharex, l'axe x sera partagé entre tous les sous-graphiques, ce qui est logique ici, puisque nous avons les mêmes coordonnées de l'axe x pour tous les sous-graphiques.

De plus, nous pouvons définir les paramètres sharex ou sharey sur row (chaque ligne de sous-graphiques partagera un axe respectif) ou col (chaque colonne de sous-graphiques partagera un axe respectif).

Comme d'habitude, n'hésitez pas à explorer davantage dans la documentation si vous le souhaitez.

Tâche

Swipe to start coding

  1. Utilisez la fonction correcte pour créer une grille de sous-graphiques.
  2. La grille doit avoir 3 lignes et 1 colonne (spécifiez les deux premiers paramètres).
  3. Spécifiez l'argument de mot-clé le plus à droite, afin que l'axe des x soit partagé entre tous les sous-graphiques.
  4. Stockez le résultat de la fonction pour créer des sous-graphiques dans les variables fig et axs (de gauche à droite).
  5. Placez le premier graphique en ligne pour data_linear sur la première ligne (ligne 0) de la grille de sous-graphiques.
  6. Placez le deuxième graphique en ligne pour data_squared sur la deuxième ligne (ligne 1) de la grille de sous-graphiques.
  7. Placez le troisième graphique en ligne 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
toggle bottom row

book
Sous-Graphiques

Jusqu'à présent, nous avons seulement créé plusieurs graphiques sur un seul objet Axes en utilisant plusieurs appels des fonctions de traçage (nous pouvons combiner différents types de graphiques).

Il est maintenant temps d'apprendre à créer plusieurs objets Axes et donc plusieurs graphiques sur différents objets Axes.

pyplot a une fonction subplots() exactement pour cet objectif. Nous avons déjà utilisé cette fonction lorsque nous avons créé une toile dans la première section, maintenant nous allons l'examiner plus en détail.

Lignes et Colonnes

Les deux arguments les plus importants de cette fonction sont nrows et ncolumns qui spécifient respectivement le nombre de lignes et de colonnes de la grille de sous-graphiques (leurs valeurs par défaut sont 1 et 1 résultant en un seul objet Axes).

subplots() renvoie un objet Figure et soit un objet Axes soit un tableau d'objets Axes.

Regardons un exemple :

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

Nous venons de créer une grille de sous-graphiques de 2 par 2.

Remarque

La fonction subplots ici renvoie un tableau d'objets Axes, car il y a plus d'un sous-graphe. Lorsqu'un tableau d'Axes est renvoyé, la variable pour le stocker est souvent appelée axs (ax est principalement utilisé pour un seul objet Axes).

axs dans notre cas est un tableau bidimensionnel, c'est pourquoi nous devons utiliser à la fois un indice de ligne et un indice de colonne pour accéder à un objet Axes particulier.

Créons quelques graphiques :

123456789101112
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 de la grille de sous-graphiques (ligne 0) a deux graphiques en ligne et la deuxième ligne (ligne 1) a deux graphiques de dispersion.

Rappelez-vous que nous ne pouvons pas utiliser plt.plot() ou plt.scatter() ici, car nous voulons placer chaque graphique sur un objet Axes séparé (sous-graphe).

Conversion en tableau 1D

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

1234567891011121314
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) # Converting axs to 1D array of 4 elements 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

Puisque nous avons un tableau 2x2, axs.ravel() renvoie un tableau 1D avec quatre éléments.

Partager un Axe

Deux autres paramètres importants de la fonction subplots() sont sharex et sharey qui spécifient si les propriétés doivent être partagées respectivement sur les axes x ou y. Ils ont tous deux une valeur par défaut de False. Changeons l'un d'eux dans notre exemple :

1234567891011121314
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Share x-axis among all the subplots fig, axs = plt.subplots(2, 2, sharex=True) # Converting axs to 1D array of 4 elements 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 la valeur True pour sharex, l'axe x sera partagé entre tous les sous-graphiques, ce qui est logique ici, puisque nous avons les mêmes coordonnées de l'axe x pour tous les sous-graphiques.

De plus, nous pouvons définir les paramètres sharex ou sharey sur row (chaque ligne de sous-graphiques partagera un axe respectif) ou col (chaque colonne de sous-graphiques partagera un axe respectif).

Comme d'habitude, n'hésitez pas à explorer davantage dans la documentation si vous le souhaitez.

Tâche

Swipe to start coding

  1. Utilisez la fonction correcte pour créer une grille de sous-graphiques.
  2. La grille doit avoir 3 lignes et 1 colonne (spécifiez les deux premiers paramètres).
  3. Spécifiez l'argument de mot-clé le plus à droite, afin que l'axe des x soit partagé entre tous les sous-graphiques.
  4. Stockez le résultat de la fonction pour créer des sous-graphiques dans les variables fig et axs (de gauche à droite).
  5. Placez le premier graphique en ligne pour data_linear sur la première ligne (ligne 0) de la grille de sous-graphiques.
  6. Placez le deuxième graphique en ligne pour data_squared sur la deuxième ligne (ligne 1) de la grille de sous-graphiques.
  7. Placez le troisième graphique en ligne 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
We're sorry to hear that something went wrong. What happened?
some-alt