用于图表的 Matplotlib 阴影线纹理

Beginner

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

简介

在本实验中,你将学习如何在 Python Matplotlib 中使用阴影线为你的图表添加纹理。阴影线是用于填充图表区域的图案。你可以使用阴影线来区分图表的不同部分,或者为图表增添视觉吸引力。

虚拟机使用提示

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

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

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

导入库

首先,你需要导入必要的库。在这种情况下,我们将使用 Matplotlib 和 NumPy。NumPy 是一个用于 Python 编程语言的库,它支持大型多维数组和矩阵,并提供大量用于操作这些数组的高级数学函数。

import matplotlib.pyplot as plt
import numpy as np

创建数据

接下来,你需要创建一些数据用于你的图表。在这种情况下,我们将使用 NumPy 库创建两个数组。

x = np.arange(1, 5)
y1 = np.arange(1, 5)
y2 = np.ones(y1.shape) * 4

创建带阴影线的柱状图

既然你已经有了数据,就可以创建一个带阴影线的柱状图。你可以使用阴影线在图表的柱子上创建图案。在这种情况下,我们将使用hatch参数为柱子添加阴影线。

plt.bar(x, y1, edgecolor='black', hatch="/")
plt.bar(x, y2, bottom=y1, edgecolor='black', hatch='//')

创建带有多种阴影线的柱状图

你也可以在柱状图中使用多种阴影线。在这种情况下,我们将使用一个阴影线数组在柱子上创建多种阴影线。

plt.bar(x, y1, edgecolor='black', hatch=['--', '+', 'x', '\\'])
plt.bar(x, y2, bottom=y1, edgecolor='black', hatch=['*', 'o', 'O', '.'])

创建带有阴影线补丁的图表

你也可以在图表中对补丁使用阴影线。在这种情况下,我们将使用fill_between函数来创建一个带有阴影线的补丁。

x = np.arange(0, 40, 0.2)
plt.fill_between(x, np.sin(x) * 4 + 30, y2=0, hatch='///', zorder=2, fc='c')

添加带阴影线的椭圆补丁

你也可以在图表中添加带阴影线的补丁。在这种情况下,我们将使用add_patch函数向图表中添加一个椭圆补丁。

plt.gca().add_patch(Ellipse((4, 50), 10, 10, fill=True, hatch='*', facecolor='y'))

添加带阴影线的多边形补丁

你还可以添加带阴影线的多边形补丁。在这种情况下,我们将使用add_patch函数向图表中添加一个多边形补丁。

plt.gca().add_patch(Polygon([(10, 20), (30, 50), (50, 10)], hatch='\\/...', facecolor='g'))

设置绘图界限和纵横比

最后,你可以设置绘图的界限和纵横比,以确保它呈现出你想要的样子。

plt.xlim([0, 40])
plt.ylim([10, 60])
plt.gca().set_aspect(1)

总结

在本实验中,你学习了如何在 Python 的 Matplotlib 中使用阴影线为图表添加纹理。你学习了如何创建带阴影线的条形图、带多种阴影线的条形图、带阴影线补丁的图表、带阴影线的椭圆补丁、带阴影线的多边形补丁,以及如何设置图表的界限和纵横比。