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

5
我希望在不同的图像中使用不同的颜色映射来展示图片。
以下代码展示了使用两个不同窗口但相同颜色映射的图片。
   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个回答

9

要制作子图,请使用subplot命令(!)

要更改颜色映射,您可以使用imshow函数的cmap参数。请参见文档

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

嗨,非常感谢您的回答。实际上我想把它们放在不同的图表中。 - Shan

7

6
您可以使用 imgplot.set_cmap('gray')。详见巨大的教程

嗨,你说得对。只是Pablo先回答了。我不知道怎么说两个答案都是正确的。 - Shan

2
如果您想将两个图形合并成一个,即制作一张图片。您可以使用以下方法:
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()

2
NameError: 名称 'cm' 未定义 - Frederico Schardong
1
从 matplotlib 导入 cm。 - DMTishler
这里有一个使用cm的示例,获取更多信息请访问: http://matplotlib.org/1.5.0/examples/pylab_examples/multi_image.html - DMTishler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接