plt.contour

这个函数主要对网格中每个点的值等于一系列值的时候做出一条条轮廓线,类似于等高线 。

contour([X, Y,] Z, [levels], ** kwargs)
绘制轮廓。

  • 参数:
    • X,Y : array-like,可选
      值Z的坐标。
      X和Y必须都是2-D,且形状与Z相同,或者它们必须都是1-d,这样len(X)== M是Z中的列数,len(Y)== N是Z中的行数。
    • Z : array-like(N,M)
      绘制轮廓的高度值。
    • levels: int或类似数组,可选
      确定轮廓线/区域的数量和位置。
      如果int Ñ,使用Ñ数据间隔; 即绘制n + 1个等高线。水平高度自动选择。
      如果是数组,则在指定的级别绘制轮廓线。值必须按递增顺序排列。
  • 返回:
    c : QuadContourSet
  • 其他参数:
    详见: https://matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html#matplotlib.pyplot.contour

下面用代码展示这个函数的效果

import numpy as np
import matplotlib.pyplot as plt

delta = 0.25  #网格间距
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2
fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)
ax.clabel(CS, inline=1, fontsize=10)
plt.show()

plt.contour_第1张图片
我们也可以使网格更紧密些,如设置delta=0.025
plt.contour_第2张图片
尝试修改参数,如颜色,线型,“等高线”,再来看下效果

CS = ax.contour(X, Y, Z ,colors=['k', 'k', 'k','r','r'], linestyles=['--','--', '-', '--','--'],
                levels=[-1,-.5, 0, .5,1])

plt.contour_第3张图片

你可能感兴趣的:(Matplotlib)