有没有办法将自定义模式放置到 imshow 图表上的选定区域中?准确地说,我需要做到这一点,除了带有数字数据的彩色方块外,我在其他方块中也有不同的图案,表示实验的不同故障模式(并且还生成一个解释这些含义的密钥不同的图案)。一个有用的模式示例是各种类型的交叉影线。我需要能够在不破坏图表上主要颜色-数字数据关系的情况下做到这一点。
以下是我尝试使用答案中建议的代码。如果我评论错误部分,则 imshow 会在没有来自掩码的数据的情况下显示空白。我什至没有尝试对不同的故障类型进行不同类型的交叉影线处理,或者处理模拟或实验有效但另一个还没有的情况。
EDIT3:我从多处理包中收到关于它如何“不能腌制”对象的错误消息。由于该程序,这是它的一部分通过多处理包。有什么方法可以解决这个问题或者没有 add_patches (下面建议的绘图方法不起作用,因为绘图发生在完全不同的坐标系上并绘制连接线)?
import numpy as np
import matplotlib.patches as patches
...
grid = np.ma.array(grid, mask=np.isnan(grid))
plot.imshow(grid, interpolation='nearest', aspect='equal', vmax = private.vmax, vmin = private.vmin)
if show_fail and faildat != []:
faildat = faildat[np.lexsort((faildat[:,yind],faildat[:,xind]))]
fails = []
for i in range(len(faildat)):
fails.append((faildat[i,1],faildat[i,0]))
for F in fails:
p = patches.Rectangle(F,1,1,hatch='/',fill=False)
plot.add_patch(p)
plot.minorticks_off()
plot.set_xticks(range(len(placex)))
plot.set_yticks(range(len(placey)))
plot.set_xticklabels(placex)
plot.set_yticklabels(placey, rotation = 0)
plot.colorbar()
plot.show()