简介
在本实验中,我们将学习如何使用 Matplotlib 中的contourf函数创建具有对数颜色刻度的填充等高线图。我们将使用一个包含正值和负值的数据集来演示此功能。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入必要的库
我们需要导入以下库:
matplotlib.pyplot用于创建图表和可视化numpy用于生成数据集
import matplotlib.pyplot as plt
import numpy as np
生成数据集
我们将使用numpy生成一个包含正值和负值的数据集:
N = 100
x = np.linspace(-3.0, 3.0, N)
y = np.linspace(-2.0, 2.0, N)
X, Y = np.meshgrid(x, y)
## 一个带有尖峰的低隆起。
## 需要将 z/颜色轴设置为对数刻度,这样我们就能同时看到隆起和尖峰。
## 线性刻度只会显示尖峰。
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X * 10)**2 - (Y * 10)**2)
z = Z1 + 50 * Z2
## 在左下角放入一些负值,以便在对数运算时产生问题:
z[:5, :5] = -1
## 以下内容并非绝对必要,但它将消除
## 一个警告。注释掉它以查看警告。
z = ma.masked_where(z <= 0, z)
创建图表
我们将使用contourf函数创建一个具有对数颜色刻度的填充等高线图:
fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.PuBu_r)
cbar = fig.colorbar(cs)
plt.show()
自定义图表
我们可以通过添加标签、标题以及更改颜色映射来自定义图表:
fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.coolwarm)
ax.set_title('Contourf Plot with Log Color Scale')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
cbar = fig.colorbar(cs)
plt.show()
总结
在本实验中,我们学习了如何使用 Matplotlib 中的contourf函数来创建具有对数颜色刻度的填充等高线图。我们还学习了如何通过添加标签、标题以及更改颜色映射来自定义图表。