Créer un graphique de référence d'flèches Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Ce tutoriel vous guidera tout au long du processus de création d'un graphique de référence en forme de flèche à l'aide de Matplotlib en Python. Le graphique affichera les différents styles de flèches disponibles dans ~.Axes.annotate.

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 à Jupyter Notebook pour la pratique.

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

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églerons rapidement le problème pour vous.

Importez les bibliothèques nécessaires

Importez les bibliothèques nécessaires pour créer le graphique de référence en forme de flèche.

import inspect
import itertools
import re

import matplotlib.pyplot as plt

import matplotlib.patches as mpatches

Obtenez les styles de flèche

Utilisez mpatches.ArrowStyle.get_styles() pour obtenir tous les styles de flèche disponibles dans ~.Axes.annotate.

styles = mpatches.ArrowStyle.get_styles()

Configurez la figure

Configurez la figure à l'aide de plt.figure() et add_gridspec(). La figure aura une grille de 2 colonnes et n lignes, où n est le nombre de styles de flèche. Chaque cellule de la grille contiendra un style de flèche et ses paramètres par défaut.

ncol = 2
nrow = (len(styles) + 1) // ncol
axs = (plt.figure(figsize=(4 * ncol, 1 + nrow))
     .add_gridspec(1 + nrow, ncol,
                    wspace=.7, left=.1, right=.9, bottom=0, top=1).subplots())
for ax in axs.flat:
    ax.set_axis_off()
for ax in axs[0, :]:
    ax.text(0,.5, "arrowstyle",
            transform=ax.transAxes, size="large", color="tab:blue",
            horizontalalignment="center", verticalalignment="center")
    ax.text(.35,.5, "paramètres par défaut",
            transform=ax.transAxes,
            horizontalalignment="gauche", verticalalignment="center")

Tracez les styles de flèche

Tracez chaque style de flèche dans une cellule de la grille, ainsi que ses paramètres par défaut. Utilisez ax.annotate() pour ajouter le nom du style de flèche et ses paramètres par défaut à la cellule.

for ax, (stylename, stylecls) in zip(axs[1:, :].T.flat, styles.items()):
    l, = ax.plot(.25,.5, "ok", transform=ax.transAxes)
    ax.annotate(stylename, (.25,.5), (-0.1,.5),
                xycoords="axes fraction", textcoords="axes fraction",
                size="large", color="tab:blue",
                horizontalalignment="center", verticalalignment="center",
                arrowprops=dict(
                    arrowstyle=stylename, connectionstyle="arc3,rad=-0.05",
                    color="k", shrinkA=5, shrinkB=5, patchB=l,
                ),
                bbox=dict(boxstyle="square", fc="w"))
    ## wrap at every nth comma (n = 1 or 2, depending on text length)
    s = str(inspect.signature(stylecls))[1:-1]
    n = 2 if s.count(',') > 3 else 1
    ax.text(.35,.5,
            re.sub(', ', lambda m, c=itertools.count(1): m.group()
                   if next(c) % n else '\n', s),
            transform=ax.transAxes,
            horizontalalignment="gauche", verticalalignment="center")

Affichez le graphique

Affichez le graphique de référence des styles de flèche à l'aide de plt.show().

plt.show()

Résumé

Dans ce tutoriel, vous avez appris à créer un graphique de référence des styles de flèche à l'aide de Matplotlib en Python. Vous avez utilisé mpatches.ArrowStyle.get_styles() pour obtenir tous les styles de flèche disponibles dans ~.Axes.annotate, configuré une figure à l'aide de plt.figure() et add_gridspec(), tracé chaque style de flèche dans une cellule de la grille et affiché le graphique à l'aide de plt.show().