Ajout de sous-graphiques (subplot, gridspec)

  • plt.subplot()

    La fonction plt.subplot() de Matplotlib permet de créer un seul sous-graphique dans une figure. Elle prend un numéro d'index qui spécifie où le sous-graphique doit être placé dans une grille de sous-graphes définie par l'utilisateur. Ce sous-graphique est ensuite utilisé pour tracer des graphiques spécifiques.

    Importation :
    import matplotlib.pyplot as plt
    Attributs :
    Paramètre Type Description Valeur par défaut
    nrows int Nombre de lignes de sous-graphes. 1
    ncols int Nombre de colonnes de sous-graphes. 1
    index int Numéro de l’index du sous-graphique à créer (commence à 1). None
    Exemple de code :
    import matplotlib.pyplot as plt
    
    # Créer une figure avec 2 lignes et 2 colonnes de sous-graphes
    plt.subplot(2, 2, 1)  # Premier sous-graphique
    plt.plot([1, 2, 3], [1, 4, 9])
    
    plt.subplot(2, 2, 2)  # Deuxième sous-graphique
    plt.plot([1, 2, 3], [9, 4, 1])
    
    plt.subplot(2, 2, 3)  # Troisième sous-graphique
    plt.plot([1, 2, 3], [1, 2, 3])
    
    plt.subplot(2, 2, 4)  # Quatrième sous-graphique
    plt.plot([1, 2, 3], [3, 2, 1])
    
    plt.tight_layout()
    plt.show()
    Explication du code :

    La fonction plt.subplot() est utilisée pour créer un sous-graphique à un endroit spécifique d’une grille de sous-graphes. Dans cet exemple, la figure est divisée en 2 lignes et 2 colonnes de sous-graphes, et chaque sous-graphique est spécifié par un numéro d’index. Le premier sous-graphique est placé dans la première case (1), le deuxième dans la deuxième case (2), etc.

    Remarques :

      • Numérotation des sous-graphes : L’index des sous-graphes commence à 1 et va jusqu’à nrows * ncols. Cela permet de placer des graphiques de manière très précise dans une figure.

      • Utilisation avec plt.subplots() : Alors que plt.subplot() permet de créer un seul sous-graphique, plt.subplots() permet de créer plusieurs sous-graphes d’un coup. plt.subplot() peut donc être utile pour un contrôle fin des sous-graphes lorsque vous travaillez avec une seule figure.

  • plt.subplots()

    La fonction plt.subplots() de Matplotlib est utilisée pour créer plusieurs sous-graphes (axes) dans une figure. Elle permet de définir facilement le nombre de lignes et de colonnes de la grille de sous-graphes. Elle retourne une figure et une ou plusieurs axes, que l'on peut utiliser pour tracer différents graphiques.

    Importation :
    import matplotlib.pyplot as plt
    Attributs :
    Paramètre Type Description Valeur par défaut
    nrows int Nombre de lignes de sous-graphes. 1
    ncols int Nombre de colonnes de sous-graphes. 1
    sharex bool Si True, tous les sous-graphes partageront le même axe X. False
    sharey bool Si True, tous les sous-graphes partageront le même axe Y. False
    figsize tuple Dimensions de la figure (largeur, hauteur) en pouces. (6, 4)
    dpi int Densité de pixels de la figure. 100
    facecolor str Couleur de fond de la figure. 'w'
    edgecolor str Couleur des bords de la figure. 'w'
    Exemple de code :
    import matplotlib.pyplot as plt
    
    # Créer une figure avec 2 lignes et 3 colonnes de sous-graphes
    fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(9, 6))
    
    # Tracer un graphique simple dans chaque sous-graphe
    for ax in axes.flat:
        ax.plot([1, 2, 3], [1, 4, 9])
    
    plt.tight_layout()
    plt.show()
    Explication du code :

    La fonction plt.subplots() crée une figure avec 2 lignes et 3 colonnes de sous-graphes. Chaque sous-graphique est accessible à travers l’objet axes, qui est un tableau 2D d’axes. Nous utilisons une boucle pour tracer un graphique simple dans chaque sous-graphique. La fonction tight_layout() ajuste les espaces entre les sous-graphes pour éviter que les graphiques se chevauchent.

    Remarques :

      • Paramètres sharex et sharey : Ces paramètres sont très utiles lorsque vous voulez que tous vos sous-graphes aient les mêmes axes, ce qui peut faciliter la comparaison entre plusieurs graphiques. Par exemple, en mettant sharex=True, tous les sous-graphes auront le même axe X.

      • figsize : Vous pouvez ajuster la taille de la figure en utilisant le paramètre figsize, qui prend un tuple représentant la largeur et la hauteur de la figure en pouces. Cela permet d’adapter la figure à l’espace disponible ou de l’agrandir pour un meilleur rendu visuel.

      • Structure de axes : Si vous avez plusieurs lignes et colonnes de sous-graphes, l’objet axes sera un tableau 2D. Vous pouvez accéder à chaque sous-graphique en utilisant des indices, par exemple, axes[0, 0] pour le premier sous-graphique en haut à gauche.

  • gridspec.GridSpec()

    La fonction gridspec.GridSpec() de Matplotlib permet de définir une grille de sous-graphes sur une figure. Elle permet de gérer de manière flexible la disposition des sous-graphes, notamment en ajustant la taille des lignes et des colonnes pour obtenir une présentation plus complexe et personnalisée des graphiques.

    Importation :
    import matplotlib.pyplot as plt
    import matplotlib.gridspec as gridspec
    Attributs :
    Paramètre Type Description Valeur par défaut
    nrows int Nombre de lignes dans la grille de sous-graphes. 1
    ncols int Nombre de colonnes dans la grille de sous-graphes. 1
    width_ratios list Liste des rapports de largeur des colonnes (si vous souhaitez que certaines colonnes soient plus larges que d’autres). None
    height_ratios list Liste des rapports de hauteur des lignes (si vous souhaitez que certaines lignes soient plus hautes que d’autres). None
    left float Position du côté gauche de la grille en termes de fraction de la largeur totale de la figure (valeur entre 0 et 1). 0.125
    right float Position du côté droit de la grille en termes de fraction de la largeur totale de la figure (valeur entre 0 et 1). 0.9
    top float Position du côté supérieur de la grille en termes de fraction de la hauteur totale de la figure (valeur entre 0 et 1). 0.9
    bottom float Position du côté inférieur de la grille en termes de fraction de la hauteur totale de la figure (valeur entre 0 et 1). 0.1
    Exemple de code :
    import matplotlib.pyplot as plt
    import matplotlib.gridspec as gridspec
    
    # Créer une figure
    fig = plt.figure(figsize=(8, 6))
    
    # Définir une grille 2x2 avec des tailles de lignes et de colonnes différentes
    gs = gridspec.GridSpec(nrows=2, ncols=2, width_ratios=[2, 1], height_ratios=[1, 2])
    
    # Créer des sous-graphes dans chaque cellule de la grille
    ax1 = plt.subplot(gs[0, 0])
    ax2 = plt.subplot(gs[0, 1])
    ax3 = plt.subplot(gs[1, 0])
    ax4 = plt.subplot(gs[1, 1])
    
    # Tracer des graphiques simples
    ax1.plot([1, 2, 3], [1, 4, 9])
    ax2.plot([1, 2, 3], [9, 4, 1])
    ax3.plot([1, 2, 3], [1, 2, 3])
    ax4.plot([1, 2, 3], [3, 2, 1])
    
    plt.tight_layout()
    plt.show()
    Explication du code :

    Nous utilisons gridspec.GridSpec() pour définir une grille de sous-graphes 2×2, avec des rapports de largeur et de hauteur spécifiques pour chaque cellule. La première ligne a une colonne deux fois plus large que la seconde. Nous assignons ensuite chaque sous-graphique (ax1, ax2, ax3, ax4) à chaque cellule de la grille et traçons un graphique simple dans chacune d’elles.

    Remarques :

      • width_ratios et height_ratios : Ces paramètres sont des listes qui permettent de personnaliser la largeur et la hauteur de chaque colonne et ligne. Par exemple, dans un tableau 2×2, si vous définissez width_ratios=[2, 1], la première colonne sera deux fois plus large que la deuxième. De même, avec height_ratios=[1, 2], la première ligne sera deux fois plus petite que la deuxième.

      • Position de la grille : Vous pouvez ajuster la position de la grille dans la figure en utilisant les paramètres left, right, top et bottom pour spécifier les marges de la grille.

      • Accessibilité des sous-graphes : Les sous-graphes peuvent être accédés en utilisant l’indice de la grille (par exemple, gs[0, 0] pour la première cellule, gs[1, 1] pour la dernière).