Я хотел бы сравнить два разных набора данных на одном и том же графике imshow, чтобы было легко увидеть различия. Мой первый инстинкт заключается в том, чтобы сделать цвета в прозрачной цветовой палитре (более низкие значения особенно), но я не смог заставить это работать:
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
# create dummy data
zvals = np.random.rand(100,100)*10-5
zvals2 = np.random.rand(100,100)*10-5
# generate the transparent colors
color1 = colorConverter.to_rgba('white',alpha=0.0)
color2 = colorConverter.to_rgba('black',alpha=0.8)
# make the colormaps
cmap1 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap',['green','blue'],256)
cmap2 = mpl.colors.LinearSegmentedColormap.from_list('my_cmap2',[color1,color2],256)
img2 = plt.imshow(zvals,interpolation='nearest',cmap=cmap1,origin='lower')
img3 = plt.imshow(zvals2,interpolation='nearest',cmap=cmap2,origin='lower')
plt.show()
Ошибка отсутствует, но белый и черный из второго графика не показывают прозрачности. Я также попробовал метод colorConverter, чтобы установить цвет в обычной ситуации plt.plot, и цвет также не стал прозрачным, хотя был отображен правильный цвет.
Любые дополнительные советы о том, как накладывать/сравнивать графики imshow, будут высоко оценены