Matplotlib 连接补丁可视化

Beginner

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

简介

Matplotlib 是 Python 中一个强大的数据可视化库。它提供了各种可视化工具来创建令人惊叹的图形和图表。在本实验中,我们将了解 ConnectionPatch,它用于在不同坐标系和/或轴中定义的点之间绘制线条。

虚拟机使用提示

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

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

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

导入必要的库

在开始之前,让我们导入必要的库。

import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

创建绘图

接下来,让我们创建一个包含两个子图的绘图。

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(6, 3))

绘制一个简单的箭头

现在,让我们在单个轴内的轴坐标中的两个点之间绘制一个简单的箭头。

xyA = (0.2, 0.2)
xyB = (0.8, 0.8)
coordsA = "data"
coordsB = "data"
con = ConnectionPatch(xyA, xyB, coordsA, coordsB,
                      arrowstyle="-|>", shrinkA=5, shrinkB=5,
                      mutation_scale=20, fc="w")
ax1.plot([xyA[0], xyB[0]], [xyA[1], xyB[1]], "o")
ax1.add_artist(con)

在不同轴之间绘制箭头

让我们在数据坐标中的同一点之间绘制一个箭头,但在不同的轴上。

xy = (0.3, 0.2)
con = ConnectionPatch(
    xyA=xy, coordsA=ax2.transData,
    xyB=xy, coordsB=ax1.transData,
    arrowstyle="->", shrinkB=5)
fig.add_artist(con)

在不同点之间绘制一条线

最后,让我们在不同坐标系中定义的不同点之间绘制一条线。

con = ConnectionPatch(
    ## 在轴坐标中
    xyA=(0.6, 1.0), coordsA=ax2.transAxes,
    ## x 在轴坐标中,y 在数据坐标中
    xyB=(0.0, 0.2), coordsB=ax2.get_yaxis_transform(),
    arrowstyle="-")
ax2.add_artist(con)

总结

在本实验中,我们学习了 ConnectionPatch,它用于在不同坐标系和/或轴中定义的点之间绘制线条。我们还学习了如何在绘图中绘制简单箭头以及不同点之间的线条。