带阴影的填充等高线图

PythonPythonBeginner
立即练习

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

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

简介

在本实验中,我们将学习如何使用 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 创建带有阴影图案的填充等高线图。我们使用 contourcontourf 函数来创建图表,并使用 hatches 参数指定阴影图案。我们还为图表添加了颜色条和图例。