2016-05-14 3 views
0

Ich möchte ein 2D-Numpy-Array mit Liniendiagrammen für jede der Spalten plotten.Label-Namen für Liniendiagramm aus numpy 2D-Array zuweisen

import numpy as np 
import matplotlib.pyplot as plt 

arr = np.random.random((10, 5)) 
ax.plot(arr) 

Allerdings bin ich nicht sicher, wie Label-Namen für jede der 5 Spalten zuweisen. Angenommen, die Spaltennamen lauten wie folgt: a, b, c, d und e

Antwort

2

Soweit ich weiß, gibt es keine integrierte Möglichkeit, mehrere unterschiedliche Labels für jede Zeile in einem einzigen Aufruf an plot weiterzuleiten. Sie könnten in Ihrem Array über Spalten Schleife und zeichnen diese einzeln:

lines = ax.plot(arr) 
ax.legend(lines, labels) 
+0

dank @ali_m, das funktioniert:

labels = ['a', 'b', 'c', 'd', 'e'] for column, label in zip(arr.T, labels): ax.plot(column, label=label) 

Oder Sie Ihre Legende, indem die Linienobjekte und ihre entsprechenden Beschriftungen explizit konstruieren könnte ! – user308827

Verwandte Themen