2016-06-09 2 views
1

я следующий код:Pyplot imshow Colormap не работает

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

По некоторым причинам, однако, не Colormap применяется к изображению только Colorbar? Я попытался добавить ключевое слово cmap в imshow, но все равно не работал. Любые идеи, что я делаю неправильно?

+0

Можете ли вы воспроизвести это с минимальным рабочим примером, например, используя некоторые случайные данные? Я никогда не видел эту проблему раньше; с указанием, например, 'plt.imshow (..., cmap = plt.cm.gray)' должен работать. – Bart

ответ

0

Убедитесь, что массив, который вы показываете, фактически является 2-мерным. Если вы (например) загрузите изображение в оттенках серого, которое на самом деле имеет три канала, тогда imshow с радостью покажет вам изображение, но оно не будет применяться к нему. В конце концов, картина «уже цветная».

Смежные вопросы