Ellipse Matplotlib avec flèche d'orientation

Beginner

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

Introduction

Dans ce laboratoire, vous allez apprendre à tracer une ellipse avec une flèche d'orientation à l'aide de Matplotlib. Les ellipses sont un type de forme couramment utilisée dans la visualisation de données pour représenter des données. En ajoutant une flèche d'orientation à une ellipse, vous pouvez fournir des informations supplémentaires sur la direction des données.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez sur 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.

Import Matplotlib et créer une figure et un axe

Tout d'abord, vous devez importer Matplotlib et créer une figure et un axe. La figure et l'axe sont les conteneurs de votre tracé.

import matplotlib.pyplot as plt

## Crée une figure et un axe
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})

Créer une ellipse

Ensuite, vous devez créer une ellipse à l'aide de la classe Ellipse. Vous pouvez spécifier le centre de l'ellipse, la largeur et la hauteur de l'ellipse, et l'angle de rotation.

from matplotlib.patches import Ellipse

ellipse = Ellipse(
    xy=(2, 4),
    width=30,
    height=20,
    angle=35,
    facecolor="none",
    edgecolor="b"
)
ax.add_patch(ellipse)

Ajouter une flèche d'orientation

Vous pouvez ajouter une flèche d'orientation à l'ellipse en traçant un marqueur au point terminal de l'axe mineur. Vous pouvez utiliser la méthode get_co_vertices() pour obtenir les coordonnées des sommets de l'ellipse. Ensuite, vous pouvez utiliser la classe Affine2D() pour faire tourner le marqueur pour qu'il corresponde à l'angle de l'ellipse.

from matplotlib.markers import MarkerStyle
from matplotlib.transforms import Affine2D

## Trace un marqueur flèche au point terminal de l'axe mineur
vertices = ellipse.get_co_vertices()
t = Affine2D().rotate_deg(ellipse.angle)
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle(">", "full", t),
    markersize=10
)

Inverser la flèche d'orientation

Si vous voulez inverser la flèche d'orientation, vous pouvez changer le type de marqueur de > à <.

## Pour inverser la flèche d'orientation, changez le type de marqueur de > à <.
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle("<", "full", t),
    markersize=10
)

Afficher le tracé

Enfin, vous pouvez afficher le tracé à l'aide de la méthode show().

plt.show()

Sommaire

Félicitations ! Vous avez appris à tracer une ellipse avec une flèche d'orientation à l'aide de Matplotlib. Cette technique peut être utile pour visualiser des données qui ont une direction.