我想在同一个 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 图的额外建议将不胜感激