创建复合路径

Beginner

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

简介

在本教程中,我们将学习如何使用 Python 中的 Matplotlib 创建复合路径。复合路径是一组简单路径的集合,可用于创建复杂形状。我们将通过组合两个简单多边形(一个矩形和一个三角形)来创建一个复合路径。

虚拟机提示

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

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

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

导入所需库

我们将首先导入所需的库。我们需要 matplotlib.pyplot 来创建绘图,matplotlib.patches 来创建补丁,matplotlib.path.Path 来创建路径,以及 numpy 来创建数组。

import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch
from matplotlib.path import Path
import numpy as np

创建顶点和代码

我们将为想要组合成复合路径的两个多边形创建顶点和代码。我们将使用 Path.MOVETO 将光标移动到多边形的起点,使用 Path.LINETO 从起点创建一条线到下一个点,并使用 Path.CLOSEPOLY 闭合多边形。

vertices = []
codes = []

## 第一个多边形 - 矩形
codes = [Path.MOVETO] + [Path.LINETO]*3 + [Path.CLOSEPOLY]
vertices = [(1, 1), (1, 2), (2, 2), (2, 1), (0, 0)]

## 第二个多边形 - 三角形
codes += [Path.MOVETO] + [Path.LINETO]*2 + [Path.CLOSEPOLY]
vertices += [(4, 4), (5, 5), (5, 4), (0, 0)]

创建路径

我们将使用 Path 根据上一步创建的顶点和代码来创建路径。

path = Path(vertices, codes)

创建路径补丁

我们将根据上一步创建的路径创建一个 路径补丁(PathPatch)。我们将把 facecolor 设置为 'none',把 edgecolor 设置为 'green'

pathpatch = PathPatch(path, facecolor='none', edgecolor='green')

创建绘图

我们将创建绘图并将 路径补丁(PathPatch) 添加到绘图中。我们将把绘图的标题设置为 '一个复合路径'

fig, ax = plt.subplots()
ax.add_patch(pathpatch)
ax.set_title('A Compound Path')

ax.autoscale_view()

plt.show()

总结

在本教程中,我们学习了如何使用 Python 中的 Matplotlib 创建复合路径。我们通过组合两个简单多边形(一个矩形和一个三角形)创建了一个复合路径。我们使用 Path 根据顶点和代码创建路径,并使用 PathPatch 根据路径创建一个补丁。最后,我们将补丁添加到绘图中以显示复合路径。