阴影线样式参考

Beginner

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

简介

本实验将指导你在 Matplotlib 中为大多数多边形添加阴影线的过程,包括 Axes.bar、Axes.fill_between、Axes.contourf 以及 patches.Polygon 的子对象。你将学习如何创建不同的阴影线图案,重复它们以增加密度,并将它们组合以创建其他图案。

虚拟机提示

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

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

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

导入必要的库

要使用 Matplotlib,我们必须导入该库和必要的模块。我们将使用 pyplot 模块来创建子图,并使用 patches 模块来创建 Rectangle 对象。

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

创建 hatches_plot 函数

hatches_plot 函数将创建一个具有指定阴影线图案的矩形,并将其添加到坐标轴上。它还会添加一个带有阴影线图案的文本。

def hatches_plot(ax, h):
    ax.add_patch(Rectangle((0, 0), 2, 2, fill=False, hatch=h))
    ax.text(1, -0.5, f"' {h} '", size=15, ha="center")
    ax.axis('equal')
    ax.axis('off')

创建子图

我们将创建三组具有不同阴影线图案的子图。

fig, axs = plt.subplots(2, 5, layout='constrained', figsize=(6.4, 3.2))

创建第一组阴影线图案

我们将使用以下列表创建第一组阴影线图案:

hatches = ['/', '\\', '|', '-', '+', 'x', 'o', 'O', '.', '*']

然后,我们将使用一个循环为每种阴影线图案创建一个矩形,并将其添加到一个子图中。

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

创建第二组阴影线图案

我们将通过把每个图案重复两次来增加密度,从而创建第二组阴影线图案。我们将使用以下列表:

hatches = ['//', '\\\\', '||', '--', '++', 'xx', 'oo', 'OO', '..', '**']

我们将使用与之前相同的循环来创建矩形。

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

创建第三组阴影线图案

我们将通过组合两种图案来创建一种新的图案,从而创建第三组阴影线图案。我们将使用以下列表:

hatches = ['/o', '\\|', '|*', '-\\', '+o', 'x*', 'o-', 'O|', 'O.', '*-']

我们将使用与之前相同的循环来创建矩形。

for ax, h in zip(axs.flat, hatches):
    hatches_plot(ax, h)

显示图表

我们将使用 show() 函数来显示图表。

plt.show()

总结

在本实验中,你学习了如何在 Matplotlib 中为大多数多边形添加阴影线,包括 Axes.bar、Axes.fill_between、Axes.contourf 以及 patches.Polygon 的子对象。你学习了如何创建不同的阴影线图案,重复它们以增加密度,以及将它们组合以创建更多图案。你还学习了如何使用 add_patch() 函数向坐标轴添加一个 Rectangle 对象,以及如何使用 text() 函数在图表中添加文本。