我想在不同的图中使用不同的颜色图显示图像。
以下代码显示具有两个不同窗口但具有相同颜色映射的图像
import scipy.misc
from pylab import *
a = scipy.misc.imread('lena.jpg')
figure(1)
image = mean(a,axis=2)
imshow(image)
#if I call show() here then only one window is displayed
gray() #change the default colormap to gray
figure(2)
imshow(image)
show()
我想知道是否有人可以帮助我。
非常感谢。
答案 0 :(得分:6)
您可以将cmap
参数传递给imshow函数。看http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.imshow
答案 1 :(得分:5)
您可以使用imgplot.set_cmap('gray')
。看到巨大的tutorial。
答案 2 :(得分:5)
要执行子图,请使用subplot
命令(!)
要更改色彩映射,可以使用cmap
函数的imshow
参数。请参阅documentation。
figure() # You don't need to specify 1
subplot(121) # 121 is a shortcut for 1 line, 2 columns, item number 1
image = mean(a,axis=2)
imshow(image, cmap='gray')
subplot(122) # 1 line, 2 columns, item number 2
imshow(image, cmap='jet')
show()
答案 3 :(得分:2)
如果您尝试将2个数字合并为1,即制作1个图像。您可以使用:
import matplotlib.pyplot as plt
plt.figure()
plt.imshow(im1, cmap=cm.bone)
plt.imshow(im2, cmap=cm.jet,alpha=0.75)
plt.show()
发布带有相对色图的色条,请在imshow()之后调用:
import matplotlib.pyplot as plt
plt.figure()
plt.imshow(im1, cmap=cm.bone)
cbar = plt.colorbar(orientation='horizontal')
cbar.set_label('Title (Unit)')
plt.imshow(im2, cmap=cm.jet,alpha=0.75)
cbar = plt.colorbar()
cbar.set_label('Title (Unit)')
plt.show()