在Python中,Matplotlib的Contour函数能返回特定等高线的点吗?
我需要用等高线图来绘制一组定义得不太方便的双曲线函数。这是可行的,绘制出来的图上还加了一些噪声(对于熟悉这些内容的人来说,这是一个被动的射频地理定位时间差问题)。
因为我的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]