我有一个隐含的功能,例如:
f(x,y) = x**y + y**y - 3*x
我想在meshgrid上解决root。所以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)
这很有效,我有一张我需要的曲线图,但是我希望得到图中的数据,而不仅仅是视觉图。那么如何找到情节数据?
答案 0 :(得分:3)
您可以使用:
获取“[matplotlib]图中的数据”cs = contour(X,Y,A,0)
data = cs.collections[0].get_paths()[1]
有多种算法可以直接计算轮廓,但我不知道任何numpy / scipy版本。 Marching squares是我一直在这里的,尽管该算法已获得专利并且对其使用有严格的限制,所以我怀疑matplotlib使用它。 Here's一个关于matplotlib如何计算轮廓的聊天链接。