Смешивание цветов (умножение) для наложения matplotlib pcolormesh
Я пытаюсь наложить два набора массивов со значениями между 0,1 с помощью matplotlib pcolormesh. Это не проблема делать:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib.colors as colors
%matplotlib inline
array1 = np.random.random([20,20])
array2 = np.random.random([20,20])
fig, ax = plt.subplots()
heatmap = ax.pcolormesh(array1, cmap=plt.cm.Reds, alpha=0.5)
heatmap2 = ax.pcolormesh(array2, cmap=plt.cm.Blues, alpha=0.5)
Результат правильно смешан, за исключением того, что динамический диапазон разделен на две части (мы не можем получить полностью красные или синие значения, когда одно высоко (близко к 1), а другое равно 0, поскольку альфа-смешивание делает все немного скучнее).
То, что я ищу, похоже на умножение цвета: значения, близкие к [1, 0], должны быть полностью красным, значения, близкие к [0, 1], должны быть полным синим, значения, близкие к [1, 1], полному пурпурному. и значения, близкие к [0, 0] белому.
Возможно ли иметь такую 2D карту цветов?
Прямо сейчас я могу сделать это в Photoshop "умножить" смесь, но мне нужно решение Python