我正在寻找在另一个颜色网格之上绘制一个 matplotlib 颜色网格。底部图只是灰度图。
然而,当传递的数组的值为 0 时,位于顶部的那个应该绘制一个透明的正方形,并且在传递的数组中为每个其他数字绘制不同的颜色。这些是 2d numpy 数组。
目前我有:
plt.pcolormesh(array1, vmin = -32, vmax = 32, cmap = plt.cm.binary)
plt.pcolormesh(array2, cmap = plt.cm.spectral)
显然这不会产生我正在寻找的东西,我认为这样做的方法是生成我自己的颜色图,我已经阅读了本指南:http ://wiki.scipy.org/Cookbook/Matplotlib/ColormapTransformations但这似乎并没有解决透明度问题,也没有解决如何将特定值映射到特定颜色的问题。
作为我想要的一个简短示例,一个数组:
[[0, 1]
[2, 3]]
应该产生一个如下所示的网格:
[[transparent, red
[green, yellow]]
我该怎么做呢?将数组合并在一起不是一种选择,因为底部数据集是一个高度图,并且它的值可能总是跨越第二个数组的值(这些是代理 ID)。