2016-12-05 5 views
-1

Я попытался показать свою легенду внутри и снаружи фигуры, но все еще не вижу ее. это просто пустая box.what ошибаетсяМоя легенда не отображается

p1=plt.plot(np.logspace(-2,1,10), trainsScores, label="train scores") 
p2=plt.plot(np.logspace(-2,1,10), testScores, label="test scores") 
plt.legend([p1, p2], ["Train score", "Test score"], loc='upper center',bbox_to_anchor=(0.5, -0.05), 
fancybox=True, shadow=True, ncol=5) 
plt.xlabel('C') 
plt.ylabel('Score') 
plt.show() 

enter image description here

ответ

2

Вы не получите предупреждение печатается на консоли?

UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x7f7a9a442518>] instances. 

У вас есть объяснение. p1 и p2 являются списками, и вы не можете передавать списки в качестве символов справки.

>>> print(type(p1)) 
<class 'list'> 

Присвоить Line2D экземплярам p1 и p2 и он будет работать.

p1, = plt.plot(np.logspace(-2,1,10), np.random.rand(10), label="train scores") 
p2, = plt.plot(np.logspace(-2,1,10), np.random.rand(10), label="test scores") 
plt.legend([p1, p2], ["Train score", "Test score"], loc='upper center', 
      bbox_to_anchor=(0.5, -0.05), fancybox=True, shadow=True, ncol=5) 
plt.xlabel('C') 
plt.ylabel('Score') 
plt.show() 

enter image description here

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