这是我生成的一些随机数据:
import scipy.signal as sgn
import scipy.interpolate as intr
import numpy.ma as ma
x = np.linspace(-100,0,500)
y = sgn.sawtooth(2 * np.pi * .2 * x)
y = (sgn.sawtooth(2 * np.pi * .2 * x)+1)/2
y = (y+1)*25
plt.plot(x,y)
z = np.sin(2*np.pi*.1*x)+np.sin(2*np.pi*.1*y)
然后我建立一个轮廓图:
xi,yi = np.meshgrid(np.linspace(x.min(),x.max(),200),np.linspace(y.min(),y.max(),200))
zi = intr.griddata((x,y), z, (xi, yi) , method='cubic')
plt.contourf( xi,yi,zi,100); plt.colorbar()
对于方形口罩,我这样做:
xi,yi = np.meshgrid(np.linspace(x.min(),x.max(),200),np.linspace(y.min(),y.max(),200))
mask =(yi> 25) & (yi< 35) & (xi > -55) & (xi < -25)
zi = intr.griddata((x,y), z, (xi, yi) , method='cubic')
zi = ma.masked_array(zi, mask = mask )
plt.contourf( xi,yi,zi,100); plt.colorbar()
我的问题是,在给定三角形的三个坐标(即(-50,0),(-25,0),(-37)的情况下,如何将三角形蒙版放置在与正方形相同的基本位置上,25)。
答案 0 :(得分:0)
尝试以下方法:
mask =(yi> 25) & (yi< 35) & (xi > -55) & (xi < -25) & ((xi+95) > 2*yi)
换句话说,将((xi+95) > 2*yi)
添加到您的蒙版中。您可能需要调整一些常量才能准确获得所需的内容。