Я хотел бы сравнить два разных набора данных на одном и том же участке imshow, чтобы было легко увидеть различия. Мой первый инстинкт должен сделать цвета в палитре прозрачной (нижние значения особенно), но я не смог получить эту работу:Наложение графиков imshow в matplotlib
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 участки были бы оценены
Почему вы не построить вычитание двух наборов данных изображения? Или вычитание соответствующего преобразования, например, преобразование их в шкалу децибел. – ely
До сих пор я не получил очень хорошие результаты с помощью этого метода, но я продолжаю надеяться, что кто-то знает, как получить индивидуальную прозрачность цвета для работы – Anake