我有一个隐式函数,例如:
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)
这很好用,我有一张我需要的曲线图,但是我想拥有图中的数据,而不仅仅是视觉图。那么如何找到绘图的数据呢?
您可以使用以下方法获取“[matplotlib] 图中的数据”:
cs = contour(X,Y,A,0)
data = cs.collections[0].get_paths()[1]
有多种算法可以直接计算轮廓,尽管我不知道任何 numpy/scipy 版本。 Marching squares是我一直在这里使用的一种,尽管该算法已获得专利并且对其使用有严格的限制,所以我怀疑 matplotlib 是否使用它。 这是一个关于 matplotlib 如何计算轮廓的聊天链接。