2015-04-13 1 views
0

У меня есть несколько фотографий, которые я показываю с помощью функции imshow из matplotlib.pyplot (псевдоним PLT) библиотеки:matplotlib.pyplot.imshow, проблема с plt.legend()

# mat is the matrix defining the image 
plt.imshow(mat.reshape((16,16)),interpolation="nearest",cmap=cm.binary) 
plt.legend("bla bla") 

Когда я выполняю это, Я получаю изображение с небольшим пустым квадратом в верхнем правом углу, и я не вижу строку, которую я положил в plt.legend. Я попытался добавить label="bla bla" в imshow, а затем использовать plt.legend() без каких-либо аргументов. В этом случае даже маленький квадрат, который должен нормально отображать этикетку, исчезает.

ответ

0

imshow не имеет частей, которые обычно объяснят легендой. Если Colorbar или заголовок не работает, вы можете добавить аннотацию (как переделан из Matplotlib галереи):

import matplotlib.pyplot as plt 
import numpy.random as nr 

M = nr.random((20,20)) 
ax = plt.imshow(M).get_axes() 

ax.annotate('anomaly', xy=(4., 1), xycoords='data', 
       xytext=(50, -120), textcoords='offset points', 
       bbox=dict(boxstyle="round", fc="0.8"), 
       arrowprops=dict(arrowstyle="->", 
           shrinkA=0, shrinkB=10, 
           connectionstyle="angle,angleA=0,angleB=90,rad=10"), 
       ) 

plt.show() 

enter image description here

+0

ок велик, что будет делать !! – dada

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