这是我的问题
它显示如下:
### mask the value 0 of data[1,:,:]
data_mask = np.ma.masked_less(data[[1,:,:],0.001)
pc =plt.pcolor(xx,yy,data_mask[i,:,:],alpha =1,facecolor = "pink",edgecolor = 'steelblue',zorder =3)
## plotting the grid line
mesh =plt.pcolor(xx,yy,data[1,:,:],cmap="gray",alpha =0.45,facecolor = "none",edgecolor = 'k')
(来源:tietuku.com)
(来源:tietuku.com)
例如两个二维数组。(来源:tietuku.com)
cs=plt.cm.jet(np.arange(2)/2.)
for i in range(0,2,1):
data_mask = np.ma.masked_less(data[i,:,:],0.001)
plt.pcolor(xx,yy, data_mask[i,:,:],alpha =0.95,facecolor = cs[i],edgecolor = 'k',zorder =3)
结果(来源:tietuku.com)
这些数字似乎都表明颜色设置错误。
- 如何设置pcolor网格颜色?在我的示例中,使用
facecolor =
无效。而且我知道使用cmap = plt.cm.xxx
可以工作(下图)。但是我必须分别绘制这两个二维数组。
(来源:tietuku.com)
- 正如我在'我的尝试2']中所说的那样,有没有一种方法可以验证重叠并以某种巧妙的方式标记这些网格。
我能弄清楚的是生成另一个名为'overlap'的np.array并保存每个网格的信息
for i in range(0,data.shape[1],1): for j in range(0,dat.shape[2],1): if (data[0,i,j] == 1) & (data[1,i,j] == 1.0): overlap[i,j] = 1
当有两个以上的二维数组时,此方法无法解决。
我将问题总结为一个数字,并生成了它的代码:
cover_mask = np.ma.masked_less(data[0,:,:],0.001)
plt.pcolor(xx,yy,data_mask[0,:,:],cmap = plt.cm.Set1,alpha =0.75,\
edgecolor = 'k',zorder =3)
cover_mask = np.ma.masked_less(cov[1,:,:],0.001)
plt.pcolor(xx,yy,cover_mask[1,:,:],cmap = plt.cm.Set2,alpha =0.75,\
edgecolor = 'k',zorder =3)
在上面的代码中,我分别绘制了二维数组。如果可以使用facecolor = 'cs[i]'
和cs=plt.cm.xxx(np.arange(2)/2.)
设置网格颜色,则可以循环所有数据[0:10,:,:]。但是我只能使用cmap = xxx
来改变每个数组的颜色。 我不知道如何循环显示颜色图。
在上图中,红色网格和绿色网格重叠。为了获得更好的可视化效果,我想标记这些重叠的网格。
想法1
想法2
将重叠的网格标记为'X'或类似下图所示的内容。
(来源:tietuku.com)
基于此post,似乎'pcolor / pcolormesh'不具有设置hatch = '* '
的功能。
这是我的问题,对不起,我很困惑。只要检查我的更新。更清楚了。 1.导入形状为(10,31,37)的3-d numpy数组“数据”。第一维10是...
免责声明:我以前没有使用过numpy的颜色图。
如果只想将重叠单元设置为一种颜色,则以下代码有效: