Dies ist von der Matplotlib.legend() -Dokumentation.
Um eine Legende für die Linien zu machen, die bereits auf den Achsen vorhanden sind (über Plot zum Beispiel), einfach mit einem iterable von Strings diese Funktion aufrufen, eine für jede Legende Artikel. Zum Beispiel:
plt.plot([1, 2, 3])
plt.legend(['A simple line'])
sollten Sie wahrscheinlich auch hinzufügen, ein plt.show()
.
So, da Sie Etiketten nicht verwenden Ich denke, Sie verwenden sollten:
plt.legend([s])
Der Fehler, dass Sie nur einen Buchstaben sehen wahrscheinlich durch die Tatsache, dass Legende iteriert über den Eingang (s = „AAPL“ verursacht wird,) und nimmt den ersten Eintrag (s [0]) für den Etikettentext für Zeile 1 (s [0] ist 'A'). Für die zweite Iteration der Schleife des gleiche geschieht für den 'I' (Weil s [0] = 'I' in diesem Fall. S 1 = 'B' und so weiter ...)
legend()
scheint ziemlich anpassbare nur überprüfen Sie die matplotlib docs.
So ist dies das Ergebnis für mich:
import matplotlib.pyplot as plt
stock = ['AAPL']
for s in stock:
plt.plot([1,2,3])
plt.legend([s])
plt.ylabel('Price')
plt.xlabel('Date')
plt.show()
Ergebnisse in: