如何在matplotlib中使用不同颜色的不同颜色图显示图像?

时间:2011-07-20 21:45:46

标签: python matplotlib

我想在不同的图中使用不同的颜色图显示图像。

以下代码显示具有两个不同窗口但具有相同颜色映射的图像

   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()

我想知道是否有人可以帮助我。

非常感谢。

4 个答案:

答案 0 :(得分:6)

答案 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()