2016-12-05 3 views
-1

Ich habe versucht, meine Legende innerhalb und außerhalb der Figur zu zeigen, kann sie aber immer noch nicht sehen. es nur die leere box.what ist falschMeine Legende erscheint nicht

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

Antwort

2

Haben Sie nicht eine Warnung auf der Konsole ausgegeben werden?

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

Dort haben Sie die Erklärung. p1 und p2 sind Listen und Sie können keine Listen als Legendenhandles übergeben.

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

Ordnen Sie die Line2D Instanzen p1 und p2 und es wird funktionieren.

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

Verwandte Themen