如何获得等值线图的 Isocontour xy 坐标?

How can I get Isocontour's xy coordinates for contour plot?

我正在尝试从 3D 绘图中获取等值面的 x-y 坐标。这是我的尝试;

import matplotlib.pyplot as plt

from numpy import pi, cos, sin, linspace, meshgrid

x = linspace(0,50,1000)
y = linspace(0,50,1000)

n = 5
L = 50
t = 0

def gyroid(x, y, n, L, t):
    tanım1 = (sin(2*pi*n*x/L) * cos(2*pi*n*y/L) + sin(2*pi*n*y/L) + cos(2*pi*n*x/L))
    return tanım1*tanım1 - t**2

XX, YY = meshgrid(x, y)
z = gyroid(XX, YY, n, L, t)

thickness = 0.1
contour = plt.contour(XX, YY, z,levels=[thickness])
# Attempt to get x-y coordinates
dat0= contour.allsegs[0][0]
plt.plot(dat0[:,0],dat0[:,1])

陀螺仪功能通常是这样的; 3D plot

我正在获取 z = 0.1 平面的等值线; Void plot

我需要 xy 对这些空隙。但是当我尝试时,代码只会得到左下角的坐标。 很明显函数是强非线性的,但是有什么方法可以检索这些坐标吗?

提前感谢您的回复。

你指定 contour.allsegs[0][0] 所以你得到第一条轮廓线的第一行。

for lines in contour.allsegs:
    for line in lines:
        X, Y = line[:,0], line[:,1]
        plt.plot(X, Y)