Matplotlib GridSpec imbriqués

PythonPythonBeginner
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, vous allez apprendre à utiliser des .GridSpec imbriqués dans Matplotlib pour créer une grille de sous-graphiques de tailles variables. Cela est utile lorsque vous voulez créer une disposition complexe de graphiques et avoir le contrôle sur la taille et l'espacement de chaque graphique.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

Tout d'abord, nous devons importer les bibliothèques nécessaires. Nous utiliserons matplotlib.pyplot pour créer les graphiques et numpy pour générer des données à tracer.

import matplotlib.pyplot as plt
import numpy as np

Création de données

Dans cette étape, nous allons créer des données à tracer. Nous utiliserons la fonction squiggle_xy pour générer des ondes sinusoïdales et cosinusoidales de fréquences différentes.

def squiggle_xy(a, b, c, d):
    i = np.arange(0.0, 2*np.pi, 0.05)
    return np.sin(i*a)*np.cos(i*b), np.sin(i*c)*np.cos(i*d)

Création de la figure et de la grille extérieure

Ensuite, nous allons créer la figure et la grille extérieure en utilisant la fonction add_gridspec. Nous allons créer une grille 4x4 sans espacement entre les sous-graphiques.

fig = plt.figure(figsize=(8, 8))
outer_grid = fig.add_gridspec(4, 4, wspace=0, hspace=0)

Création des grilles intérieures et des sous-graphiques

Dans cette étape, nous allons créer les grilles intérieures et les sous-graphiques en utilisant des .GridSpec imbriqués. Nous allons parcourir chaque cellule de la grille extérieure et créer une grille 3x3 pour chaque cellule.

for a in range(4):
    for b in range(4):
        ## gridspec à l'intérieur d'un gridspec
        inner_grid = outer_grid[a, b].subgridspec(3, 3, wspace=0, hspace=0)
        axs = inner_grid.subplots()  ## Crée tous les sous-graphiques pour la grille intérieure.
        for (c, d), ax in np.ndenumerate(axs):
            ax.plot(*squiggle_xy(a + 1, b + 1, c + 1, d + 1))
            ax.set(xticks=[], yticks=[])

Afficher seulement les bords externes

Dans cette étape, nous allons supprimer les bords des sous-graphiques intérieurs et n'afficher que les bords externes. Cela rendra le tracé plus propre.

for ax in fig.get_axes():
    ss = ax.get_subplotspec()
    ax.spines.top.set_visible(ss.is_first_row())
    ax.spines.bottom.set_visible(ss.is_last_row())
    ax.spines.left.set_visible(ss.is_first_col())
    ax.spines.right.set_visible(ss.is_last_col())

Afficher le tracé

Enfin, nous allons afficher le tracé en utilisant la fonction show().

plt.show()

Récapitulatif

Dans ce laboratoire, vous avez appris à utiliser des .GridSpec imbriqués dans Matplotlib pour créer une grille de sous-graphiques de tailles variables. Nous avons également appris à générer des données à l'aide de numpy et à personnaliser les bords des sous-graphiques. Grâce à ces connaissances, vous pouvez créer des dispositions complexes de tracés avec un contrôle précis sur leur taille et leur espacement.