如何理解matplotlib.pyplot.contour的代码?

How to understand the code for matplotlib.pyplot.contour?

我发现我正在编写的函数与 matplotlib.pyplot 中的轮廓函数的工作方式相似(但不完全相同)。我正在尝试阅读 python 以详细了解它的工作原理。

有人可以指出代码中在给定级别找到第一个点并开始 "following" 的位置吗?此外,它在哪里决定它是否找到了第二个不同的位置,在该位置它跟随一组不同的点,这些点也具有相同的水平?

例如,其中一些等高线显示了 tan 从正无穷大环绕到负无穷大的位置。我想避免这些 'zeros'。看看这些图:

def nanifbig(f, lo, hi):
    g = f.copy()
    g[g<lo] = np.nan
    g[g>hi] = np.nan
    return g

import numpy              as np
import matplotlib.pyplot as plt

zero = np.array([0.0])

x = np.linspace(0, 8, 401)
y = np.linspace(0, 4, 201)
X, Y = np.meshgrid(x, y)

extent = [x[0], x[-1], y[0], y[-1]]

F = np.tan(X + 0.02*Y**2)

lo, hi = -2, 2
Fc = F.clip(lo, hi)
Fnanifbig = nanifbig(F, lo, hi)

Fnan = F.copy()
Fnan[:] = np.nan

plt.figure()

plt.subplot(2,2,1)
plt.imshow(Fc, origin='lower', extent=extent)
plt.contour(Fc, zero, linewidths=2, extent=extent)

plt.subplot(2,2,2)
plt.imshow(Fnanifbig, origin='lower', extent=extent)
plt.contour(Fc, zero, linewidths=2, extent=extent)

plt.subplot(2,2,3)
plt.imshow(Fnan, origin='lower', extent=extent)
plt.contour(Fc, zero, linewidths=2, extent=extent)

plt.subplot(2,2,4)
plt.plot(x, F[0,:])

plt.show()

非常感谢您的帮助!

@Joe Kington 提供了包含答案的评论。请求的代码在 C 中,可以在 https://github.com/matplotlib/matplotlib/blob/master/src/cntr.c

找到