带方向箭头的 Matplotlib 椭圆

Beginner

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

简介

在本实验中,你将学习如何使用 Matplotlib 绘制带有方向箭头的椭圆。椭圆是数据可视化中常用的一种形状,用于表示数据。通过在椭圆上添加方向箭头,可以提供有关数据方向的额外信息。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入 Matplotlib 并创建图形和坐标轴

首先,你需要导入 Matplotlib 并创建一个图形和坐标轴。图形和坐标轴是你绘图的容器。

import matplotlib.pyplot as plt

## 创建一个图形和坐标轴
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})

创建一个椭圆

接下来,你需要使用 Ellipse 类创建一个椭圆。你可以指定椭圆的中心、宽度和高度,以及旋转角度。

from matplotlib.patches import Ellipse

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

添加方向箭头

你可以通过在短轴的端点处绘制一个标记来向椭圆添加方向箭头。你可以使用 get_co_vertices() 方法获取椭圆顶点的坐标。然后,你可以使用 Affine2D() 类旋转该标记以匹配椭圆的角度。

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

## 在短轴的端点处绘制一个箭头标记
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
)

反转方向箭头

如果你想反转方向箭头,可以将标记类型从 > 切换为 <

## 要反转方向箭头,将标记类型从 > 切换为 <。
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle("<", "full", t),
    markersize=10
)

显示绘图

最后,你可以使用 show() 方法来显示绘图。

plt.show()

总结

恭喜你!你已经学会了如何使用 Matplotlib 绘制带有方向箭头的椭圆。这项技术对于可视化具有方向的数据很有用。