Flèche de direction ancrée dans Matplotlib

Beginner

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

Introduction

Dans ce laboratoire, nous allons apprendre à créer des flèches de direction ancrées dans Matplotlib. Les flèches de direction ancrées sont des flèches qui pointent dans une direction spécifique et sont ancrées à un graphique. Ces flèches sont utiles pour indiquer des directions ou des orientations spécifiques dans un graphique. Nous allons apprendre à créer des flèches simples ainsi que des flèches à contraste élevé et tournées.

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 pratiquer.

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

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires telles que Matplotlib, NumPy, le gestionnaire de polices Matplotlib et AnchoredDirectionArrows à partir de mpl_toolkits.axes_grid1. Nous utiliserons ces bibliothèques pour créer des flèches de direction ancrées.

import matplotlib.pyplot as plt
import numpy as np

import matplotlib.font_manager as fm
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDirectionArrows

Créez un graphique

Ensuite, nous allons créer un graphique simple à l'aide de NumPy. Ce graphique servira de fond pour les flèches de direction ancrées.

## Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.imshow(np.random.random((10, 10)))

Créez une flèche simple

Maintenant, nous allons créer une flèche de direction ancrée simple à l'aide de la classe AnchoredDirectionArrows. Cette flèche indiquera les directions X et Y dans le graphique.

## Simple example
simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y')
ax.add_artist(simple_arrow)

Créez une flèche à contraste élevé

Ensuite, nous allons créer une flèche de direction ancrée à contraste élevé. Cette flèche aura un contour blanc et une couleur de remplissage noire.

high_contrast_part_1 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'w', 'fc': 'none', 'alpha': 1,
                                         'lw': 2}
                            )
ax.add_artist(high_contrast_part_1)

high_contrast_part_2 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'none', 'fc': 'k'},
                            text_props={'ec': 'w', 'fc': 'k', 'lw': 0.4}
                            )
ax.add_artist(high_contrast_part_2)

Créez une flèche tournée

Dans cette étape, nous allons créer une flèche de direction ancrée tournée. Cette flèche sera tournée de 30 degrés et aura une police de caractères à serifs.

fontprops = fm.FontProperties(family='serif')

rotated_arrow = AnchoredDirectionArrows(
                    ax.transAxes,
                    '30', '120',
                    loc='center',
                    color='w',
                    angle=30,
                    fontproperties=fontprops
                    )
ax.add_artist(rotated_arrow)

Modifiez les directions des flèches

Dans cette étape, nous allons créer trois flèches de direction ancrées qui pointent dans des directions différentes. Ces flèches auront des longueurs et des rapports d'aspect différents.

a1 = AnchoredDirectionArrows(
        ax.transAxes, 'A', 'B', loc='lower center',
        length=-0.15,
        sep_x=0.03, sep_y=0.03,
        color='r'
    )
ax.add_artist(a1)

a2 = AnchoredDirectionArrows(
        ax.transAxes, 'A', ' B', loc='lower left',
        aspect_ratio=-1,
        sep_x=0.01, sep_y=-0.02,
        color='orange'
        )
ax.add_artist(a2)


a3 = AnchoredDirectionArrows(
        ax.transAxes, ' A', 'B', loc='lower right',
        length=-0.15,
        aspect_ratio=-1,
        sep_y=-0.1, sep_x=0.04,
        color='cyan'
        )
ax.add_artist(a3)

Affichez le graphique

Enfin, nous allons afficher le graphique avec toutes les flèches de direction ancrées.

plt.show()

Récapitulatif

Dans ce laboratoire, nous avons appris à créer des flèches de direction ancrées dans Matplotlib. Nous avons créé des flèches simples ainsi que des flèches à contraste élevé et tournées. Nous avons également appris à modifier les directions et les rapports d'aspect des flèches. Les flèches de direction ancrées sont utiles pour indiquer des directions ou des orientations spécifiques dans un graphique.