填充等高线图与对数颜色刻度

PythonPythonBeginner
立即练习

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

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

简介

在本实验中,我们将学习如何使用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函数来创建具有对数颜色刻度的填充等高线图。我们还学习了如何通过添加标签、标题以及更改颜色映射来自定义图表。