Introduction
Les flèches sont souvent utilisées pour annoter les graphiques. Ce tutoriel montre comment tracer des flèches qui se comportent différemment lorsque les limites de données sur un graphique sont modifié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 à 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ésoudrons rapidement le problème pour vous.
Forme de la tête fixée dans l'espace d'affichage, points d'ancrage fixés dans l'espace de données
Cela est utile si vous annotiez un graphique et que vous ne voulez pas que la flèche change de forme ou de position lorsque vous déplacez ou mettez à l'échelle le graphique.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
x_tail = 0.1
y_tail = 0.5
x_head = 0.9
y_head = 0.8
dx = x_head - x_tail
dy = y_head - y_tail
fig, axs = plt.subplots(nrows=2)
arrow = mpatches.FancyArrowPatch((x_tail, y_tail), (x_head, y_head),
mutation_scale=100)
axs[0].add_patch(arrow)
arrow = mpatches.FancyArrowPatch((x_tail, y_tail), (x_head, y_head),
mutation_scale=100)
axs[1].add_patch(arrow)
axs[1].set(xlim=(0, 2), ylim=(0, 2))
plt.show()
Forme de la tête et points d'ancrage fixés dans l'espace d'affichage
Cela est utile si vous annotiez un graphique et que vous ne voulez pas que la flèche change de forme ou de position lorsque vous déplacez ou mettez à l'échelle le graphique.
fig, axs = plt.subplots(nrows=2)
arrow = mpatches.FancyArrowPatch((x_tail, y_tail), (x_head, y_head),
mutation_scale=100,
transform=axs[0].transAxes)
axs[0].add_patch(arrow)
arrow = mpatches.FancyArrowPatch((x_tail, y_tail), (x_head, y_head),
mutation_scale=100,
transform=axs[1].transAxes)
axs[1].add_patch(arrow)
axs[1].set(xlim=(0, 2), ylim=(0, 2))
plt.show()
Tous les éléments de la zone de dessin fixés dans l'espace de données
fig, axs = plt.subplots(nrows=2)
arrow = mpatches.Arrow(x_tail, y_tail, dx, dy)
axs[0].add_patch(arrow)
arrow = mpatches.FancyArrow(x_tail, y_tail -.4, dx, dy,
width=.1, length_includes_head=True, color="C1")
axs[0].add_patch(arrow)
axs[0].arrow(x_tail + 1, y_tail -.4, dx, dy,
width=.1, length_includes_head=True, color="C2")
arrow = mpatches.Arrow(x_tail, y_tail, dx, dy)
axs[1].add_patch(arrow)
arrow = mpatches.FancyArrow(x_tail, y_tail -.4, dx, dy,
width=.1, length_includes_head=True, color="C1")
axs[1].add_patch(arrow)
axs[1].arrow(x_tail + 1, y_tail -.4, dx, dy,
width=.1, length_includes_head=True, color="C2")
axs[1].set(xlim=(0, 2), ylim=(0, 2))
plt.show()
Résumé
Ce tutoriel a montré comment tracer des flèches qui se comportent différemment lorsque les limites de données sur un graphique sont modifiées. Il a couvert trois cas d'utilisation pour tracer des flèches, selon que la tête ou les points d'ancrage doivent être fixés dans l'espace de données ou d'affichage. Ces cas d'utilisation peuvent être utiles pour annoter les graphiques et pour s'assurer que la flèche reste dans la position correcte même si le graphique est déplacé ou mis à l'échelle.