创建 Matplotlib PathPatch 对象

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Matplotlib 是一个 Python 库,它允许用户创建不同类型的图表。它用于数据可视化和数据分析。在本实验中,我们将学习如何使用 Matplotlib 的 API 创建一个 PathPatch 对象。

虚拟机使用提示

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlotCustomizationGroup(["Plot Customization"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") matplotlib/PlotCustomizationGroup -.-> matplotlib/grid_config("Grid Configuration") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} matplotlib/figures_axes -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} matplotlib/line_plots -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} python/lists -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} python/tuples -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} python/build_in_functions -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} matplotlib/grid_config -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} python/importing_modules -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} python/data_visualization -.-> lab-48854{{"创建 Matplotlib PathPatch 对象"}} end

导入库

我们需要为本实验导入所需的库。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

定义路径数据

在这一步中,我们定义路径数据。路径数据是一系列元组,用于指定路径的顶点和代码。我们使用 mpath.Path 类根据这些数据创建一个路径对象。

Path = mpath.Path
path_data = [
    (Path.MOVETO, (1.58, -2.57)),
    (Path.CURVE4, (0.35, -1.1)),
    (Path.CURVE4, (-1.75, 2.0)),
    (Path.CURVE4, (0.375, 2.0)),
    (Path.LINETO, (0.85, 1.15)),
    (Path.CURVE4, (2.2, 3.2)),
    (Path.CURVE4, (3, 0.05)),
    (Path.CURVE4, (2.0, -0.5)),
    (Path.CLOSEPOLY, (1.58, -2.57)),
    ]
codes, verts = zip(*path_data)
path = mpath.Path(verts, codes)

创建PathPatch对象

在这一步中,我们使用上一步创建的路径对象创建一个 PathPatch 对象。这个对象用于填充路径所包围的区域。我们还可以设置补丁的颜色和透明度。

patch = mpatches.PathPatch(path, facecolor='r', alpha=0.5)

将PathPatch添加到绘图中

现在,我们使用轴对象的 add_patch 方法将补丁对象添加到绘图中。

fig, ax = plt.subplots()
ax.add_patch(patch)

绘制控制点和连接线

在这一步中,我们使用轴对象的 plot 方法绘制路径的控制点和连接线。

x, y = zip(*path.vertices)
line, = ax.plot(x, y, 'go-')

自定义绘图

最后,我们通过添加网格和使坐标轴等比例来自定义绘图。

ax.grid()
ax.axis('equal')
plt.show()

总结

在这个实验中,我们学习了如何使用Matplotlib的API创建一个PathPatch对象。我们定义了路径数据,创建了一个Path对象,并使用它创建了一个PathPatch对象,然后将其添加到绘图中。我们还绘制了路径的控制点和连接线,并通过添加网格和使坐标轴等比例来自定义绘图。