2

我有一个隐式函数,例如:

f(x,y) = x**y + y**y - 3*x

我想解决网格上的根问题。所以 f(x,y) = 0

绘制解决方案很容易:

x = linspace(-2,2,11)
y = linspace(-2,2,11)
(X,Y) = meshgrid(x,y)

A = X**Y + Y**Y - 3*X
contour(X,Y,A,0)

这很好用,我有一张我需要的曲线图,但是我想拥有图中的数据,而不仅仅是视觉图。那么如何找到绘图的数据呢?

4

1 回答 1

3

您可以使用以下方法获取“[matplotlib] 图中的数据”:

cs = contour(X,Y,A,0)
data = cs.collections[0].get_paths()[1]

有多种算法可以直接计算轮廓,尽管我不知道任何 numpy/scipy 版本。 Marching squares是我一直在这里使用的一种,尽管该算法已获得专利并且对其使用有严格的限制,所以我怀疑 matplotlib 是否使用它。 这是一个关于 matplotlib 如何计算轮廓的聊天链接。

于 2010-06-28T23:34:02.510 回答