简介
在本实验中,我们将学习如何使用 Python 的 Matplotlib 库创建带有阴影图案的填充等高线图。等高线图用于在二维中显示三维数据。它们对于可视化具有峰值和谷值的数据(如地形数据)特别有用。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库
我们首先导入必要的库。在本实验中,我们将使用 NumPy 和 Matplotlib。
import matplotlib.pyplot as plt
import numpy as np
创建数据
接下来,我们将创建一些用于绘图的示例数据。在这个例子中,我们将创建一个由 x 和 y 值组成的二维网格,并使用它们来计算 z 值。
## 生成一些数字,将 x 和 y 数组转换为简单的
## 二维数组,这使得将它们组合在一起更容易。
x = np.linspace(-3, 5, 150).reshape(1, -1)
y = np.linspace(-3, 5, 120).reshape(-1, 1)
z = np.cos(x) + np.sin(y)
带颜色条的最简单阴影图
在这一步中,我们将创建一个带颜色条的最简单阴影图。我们将使用 contourf 函数来创建填充等高线图,并使用 hatches 参数指定阴影图案。
fig1, ax1 = plt.subplots()
cs = ax1.contourf(x, y, z, hatches=['-', '/', '\\', '//'],
cmap='gray', extend='both', alpha=0.5)
fig1.colorbar(cs)
无颜色阴影且带图例的绘图
在这一步中,我们将创建一个无颜色阴影的绘图并添加一个图例。我们将使用 contour 函数来创建等高线,使用 contourf 函数来指定无颜色的阴影。
fig2, ax2 = plt.subplots()
n_levels = 6
ax2.contour(x, y, z, n_levels, colors='black', linestyles='-')
cs = ax2.contourf(x, y, z, n_levels, colors='none',
hatches=['.', '/', '\\', None, '\\\\', '*'],
extend='lower')
## 为等高线集创建一个图例
artists, labels = cs.legend_elements(str_format='{:2.1f}'.format)
ax2.legend(artists, labels, handleheight=2, framealpha=1)
显示图表
最后,我们将使用 show 函数来显示图表。
plt.show()
总结
在本实验中,我们学习了如何使用 Matplotlib 创建带有阴影图案的填充等高线图。我们使用 contour 和 contourf 函数来创建图表,并使用 hatches 参数指定阴影图案。我们还为图表添加了颜色条和图例。