python - Matplotlib 透明叠加 & pdf 透明

标签 python matplotlib overlay imshow

假设我有两个 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,使 None 区域完全透明,one 区域的 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")

这非常有效(我也测试了 Bill 的解决方案,它也非常有效)。

最佳答案

如果您使用 0 作为透明颜色而不是 None,您可以使用您最喜欢的 matplotlib 颜色图并在它的开头添加透明颜色:

my_red_cmap = mplt.cm.Reds
my_red_cmap.set_under(color="white", alpha="0")

然后您可以使用您想要的全局 alpha 0.3 绘制数组 B,使用您的自定义颜色图,它将使用透明白色作为其第一个值。

关于python - Matplotlib 透明叠加 & pdf 透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328981/

相关文章:

python - Django Rest框架: passing queryset to Response()

python - Matplotlib boxplot 仅显示最大和最小传单

python - 具有不同颜色图的 matplotlib 表列

CSS 以渐变样式创建 CSS3 透明叠加层

css - 在网格中覆盖透明框 css

python - 如果两个或多个测试失败,如何停止执行测试?

python - 如何使用 Google 的 Python Drive Client API 在 Team Drive 中创建文件夹?

python - Django 和 Aptana Studio

python - 从 sns.kdeplot python 中提取数据

overlay - 如何以编程方式使用Jquery工具Overlay?