Как отобразить изображения с использованием разных цветовых карт на разных рисунках в matplotlib? - PullRequest
3 голосов
/ 21 июля 2011

Я хочу отображать изображения с использованием разных цветовых карт на разных рисунках.

Следующий код отображает изображение с двумя разными окнами, но с одной и той же цветовой картой

   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 ]

6 голосов
/ 21 июля 2011

Вы можете передать аргумент cmap в функцию imshow. Посмотрите на http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.imshow

6 голосов
/ 21 июля 2011

Для создания графиков используйте команду subplot (!)

. Чтобы изменить карту цветов, вы можете использовать аргумент cmap функции imshow.См. документацию .

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()
5 голосов
/ 21 июля 2011

Вы можете использовать imgplot.set_cmap('gray'). Смотрите огромный учебник .

2 голосов
/ 18 сентября 2011

Если вы пытаетесь объединить 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...