Наложение графиков imshow в matplotlib

Я хотел бы сравнить два разных набора данных на одном и том же графике 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

21
задан Anake 12 April 2012 в 16:35
поделиться