在matplotlib中覆盖imshow图。
在matplotlib中覆盖imshow图。
我想要在同一个imshow图上比较两组不同的数据,以便更容易看到差异。
我的第一反应是让色彩映射中的颜色变得透明(尤其是较低的值),但我还没有成功实现:
from matplotlib.colors import colorConverter import matplotlib.pyplot as plt import numpy as np # 创建虚拟数据 zvals = np.random.rand(100,100)*10-5 zvals2 = np.random.rand(100,100)*10-5 # 生成透明的颜色 color1 = colorConverter.to_rgba('white',alpha=0.0) color2 = colorConverter.to_rgba('black',alpha=0.8) # 创建色彩映射 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图有任何额外的建议,将不胜感激。