我有一个相当复杂的二维函数,使用contourf
可以用很少的层表示。如何获得与填充轮廓完全对应的数组?
例如:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,100)
y = np.linspace(0,1,100)
[X,Y] = np.meshgrid(x,y)
Z = X**2 + Y**2
plt.subplot(1,2,1)
plt.imshow(Z, origin = 'lower')
plt.subplot(1,2,2)
plt.contourf(Z,[0,1,2])
plt.show()
plt.savefig('test.png')
我想从contourplot中获得一个数组,该数组可以在不同轮廓之间返回常量值。
到目前为止,我已经进行了一些阈值设置:
test = Z
test[test<1] = 0
test[test>=1] = 2
plt.contourf(X,Y,test,[0,1,2])
plt.savefig('test1.png')
但是contourf
在插值方面做得更好。此外,当我有多个轮廓时,“手动”阈值会变得有点长。
我猜想,因为contourf
可以完成所有工作,所以有一种方法可以从contourf
对象中获取该信息吗?
P.S:为什么我的第一段代码会生成不同大小的子图?