如何获得与contourf相对应的数组?

时间:2019-02-01 10:47:42

标签: numpy matplotlib interpolation contourf

我有一个相当复杂的二维函数,使用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')

enter image description here

我想从contourplot中获得一个数组,该数组可以在不同轮廓之间返回常量值。

到目前为止,我已经进行了一些阈值设置:

test = Z
test[test<1] = 0
test[test>=1] = 2
plt.contourf(X,Y,test,[0,1,2])
plt.savefig('test1.png')

但是contourf在插值方面做得更好。此外,当我有多个轮廓时,“手动”阈值会变得有点长。

enter image description here

我猜想,因为contourf可以完成所有工作,所以有一种方法可以从contourf对象中获取该信息吗?

P.S:为什么我的第一段代码会生成不同大小的子图?

0 个答案:

没有答案