2016-06-09 18 views
1

Ich habe den folgenden Code:Pyplot imshow ColorMap funktioniert nicht

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

Aus irgendeinem Grund jedoch die colormap nicht nur auf die colorbar auf das Bild angewendet wird? Ich versuchte und fügte das cmap Schlüsselwort dem imshow hinzu, aber arbeitete noch nicht. Irgendwelche Ideen, was ich falsch mache?

+0

Können Sie dies mit einem minimalen Arbeitsbeispiel reproduzieren, zum Beispiel mit einigen zufälligen Daten? Ich habe dieses Problem noch nie zuvor gesehen. Spezifizieren z.B. 'plt.imshow (..., cmap = plt.cm.gray)' sollte funktionieren. – Bart

Antwort

0

Stellen Sie sicher, dass das Array, das Sie anzeigen, tatsächlich zweidimensional ist. Wenn Sie zum Beispiel ein Graustufenbild laden, das tatsächlich drei Kanäle hat, zeigt imshow Ihnen das Bild gerne an, aber es wird die Farbkarte nicht darauf angewendet. Das Bild ist immerhin "schon Farbe".