本节将向大家演示在 Python 中如何运用 Matplotlib 库绘制密度图与等高线。首先,我们需要在 Python 中导入所需的库与模块,并对 notebook 环境与图表风格进行初步的设置:
- %matplotlib inline
- import matplotlib.pyplot as plt
- plt.style.use('seaborn-white')
- import numpy as np
为了更方便后续演示,定义如下复杂函数:
- def f(x, y):
- return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
Numpy 中的函数 meshgrid ,我们构造了一个复杂的点阵网格,用于匹配密度图或等高线的一般运用场景:
- x = np.linspace(0, 5, 50)
- y = np.linspace(0, 5, 40)
- X, Y = np.meshgrid(x, y)
- Z = f(X, Y)
函数 contour 是 Matplotlib 中专用于绘制等高线的函数,我们可以直接将坐标的三个维度作为函数的输入,从而绘制等高线图:
- plt.contour(X, Y, Z, colors='black');
上述 colors 参数用于调整图中等高线的颜色,在实际操作中我们也可以利用 cmap 参数来定义指定的 Colormap,另外在下面的例子中,函数的第四个参数 20 表示等高线的密集程度,我们可以通过调整它来控制图中显示的信息量:
- plt.contour(X, Y, Z, 20, cmap='RdGy');
以上内容转自 数析学院,原文内容较多,有需要了解更多的同学可以直接查看原文