2016-06-09 4 views
1

Je le code suivant:Pyplot imshow ColorMap ne fonctionne pas

plt.figure(figsize=(15, 20)) 
min_v = np.min(net_l0) 
max_v = np.max(net_l0) 
for i in range(8): 
    for j in range(4): 
     num = i*4 + j 
     plt.subplot(8,4, num+1) 
     w_filt = net_l0[num, :3] 
     w_filt = w_filt.swapaxes(0, 1).swapaxes(1, 2) 
     imgplot = plt.imshow(w_filt, vmin=min_v, vmax=max_v, interpolation='none') 
     imgplot.set_cmap('gray') 
     plt.colorbar() 
plt.show() 

Pour une raison quelconque, cependant, la palette de couleurs n'est pas appliquée uniquement à l'image du colorbar? J'ai essayé et en ajoutant le mot-clé cmap au imshow, mais ne fonctionnait toujours pas. Des idées de ce que je fais mal?

+0

Pouvez-vous reproduire ceci avec un exemple de travail minimal, par exemple en utilisant des données aléatoires? Je n'ai jamais vu ce problème auparavant. spécifier par ex. 'plt.imshow (..., cmap = plt.cm.gray)' devrait fonctionner. – Bart

Répondre

0

Assurez-vous que la baie que vous affichez est réellement bidimensionnelle. Si vous (par exemple) chargez une image en niveaux de gris qui a en réalité trois canaux, alors imshow vous montrera heureusement l'image, mais elle ne lui appliquera pas la palette de couleurs. L'image est "déjà colorée", après tout.