假设我有两个 numpy 数组(我提供的只是示例):
import numpy as np
A = np.arange(144).reshape((12, 12))
np.random.shuffle(A)
B = np.ones((12,12))
B[0:10:4,:] = None
我想使用 imshow绘制A :
import matplotlib.pyplot as mplt
mplt.imshow(A, cmap = mplt.gray())
并覆盖B,使无区域完全透明,并且一个区域的 alpha 为(例如 alpha = 0.3。)。
我已经尝试过使用以下内容:
mplt.imshow(B, cmap = mplt.get_cmap('Reds), alpha = 0.3)
但这不起作用。还尝试使用掩码数组创建 B,但无法理解它。有什么建议么?
谢谢
编辑:
我最终使用
my_red_cmap = mplt.cm.Reds
my_red_cmap.set_under(color="white", alpha="0")
这就像一个魅力(我也测试了比尔的解决方案,它也很有效)。