在Python中,Matplotlib的Contour函数能返回特定等高线的点吗?

5 投票
1 回答
2605 浏览
提问于 2025-04-18 16:34

我需要用等高线图来绘制一组定义得不太方便的双曲线函数。这是可行的,绘制出来的图上还加了一些噪声(对于熟悉这些内容的人来说,这是一个被动的射频地理定位时间差问题)。

因为我的Python程序知道目标的坐标(x,y),所以我想在这个点周围取样所有不同的双曲线,并生成一个误差椭圆。如果我能让Matplotlib的等高线函数在绘制每条等高线时返回这些点的坐标,我就可以处理后面的计算了。那么……

Matplotlib的等高线函数能否返回特定等高线(比如f(x,y)=0)上的所有(x,y)值呢?

1 个回答

6

你可以在特定的level上绘制一个轮廓,方法如下:

c = plt.contour(X, Y, Z, [level])

现在你可以从返回的对象c中提取轮廓点(可以参考这个回答):

v = c.collections[0].get_paths()[0].vertices
x = v[:,0]
y = v[:,1]

撰写回答