Ellipse with orientation arrow demo

Ellipse with orientation arrow demo#

This demo shows how to draw an ellipse with an orientation arrow (clockwise or counterclockwise). Compare this to the :doc:Ellipse collection example </gallery/shapes_and_collections/ellipse_collection>.

import matplotlib.pyplot as plt

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

# Create a figure and axis
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})

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

# Plot an arrow marker at the end point of minor axis
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
)
# Note: To reverse the orientation arrow, switch the marker type from > to <.

plt.show()

… admonition:: References

The use of the following functions, methods, classes and modules is shown in this example:

  • matplotlib.patches

  • matplotlib.patches.Ellipse