pyplot kombinieren Sie mehrzeilige Beschriftungen in der Legende
Ich habe Daten, dass die Ergebnisse in mehrere Linien gezeichnet werden, möchte ich diese Zeilen einem einzigen label in meiner Legende. Ich denke, das kann besser sein, gezeigt am Beispiel unten
a = np.array([[ 3.57, 1.76, 7.42, 6.52],
[ 1.57, 1.2 , 3.02, 6.88],
[ 2.23, 4.86, 5.12, 2.81],
[ 4.48, 1.38, 2.14, 0.86],
[ 6.68, 1.72, 8.56, 3.23]])
plt.plot(a[:,::2].T, a[:, 1::2].T, 'r', label='data_a')
plt.legend(loc='best')
Da sehen Sie auf Out[23] die Handlung führte in der 5 verschiedene Linien. Das resultierende Diagramm sieht wie folgt aus
Gibt es eine Möglichkeit, dass ich sagen kann die plot-Methode zu vermeiden, mehrere Etiketten? Ich will nicht von custom legend (wo Sie geben Sie die Bezeichnung und die line Form alle auf einmal) so viel wie ich kann.
- Sie müssen Nachrichtensendung erstellen Sie eine benutzerdefinierte Legende. Kann nicht einfügen einen link, denn mein Handy ist Mist. Google "matplotlib manuell erstellen Legende". Es ist ein SO Antwort, die hat alles was Sie brauchen ein paar hits down.
- danke, das ist hilfreich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine kleine Hilfsfunktion, die persönlich, wenn ich wollte, es zu tun oft;
Ein einfacher (und IMO klarer) Weise Duplikate entfernen (als das, was Sie haben) aus der
handles
undlabels
der Legende ist diese:Numpy-basierte Lösung wird die Antwort von oben.
Unter der Annahme, dass gleiche Bezeichnungen haben, gleich behandelt, erhalten eindeutige Bezeichnungen und Ihre jeweiligen Indizes, die den Griff Indizes.
So mit wird ' s Vorschlag und eine andere Frage hier, ich verlasse mein Heilmittel werden hier
Und den neuen plot aussieht,
Matplotlib bietet Ihnen eine schöne Oberfläche, die auf Sammlungen von Linien, LineCollection. Der code ist geradlinig
Diese Ergebnisse in der folgenden Ausgabe:
Einer low-tech-Lösung ist es, zwei plot Aufrufe. Eine, die plots Ihrer Daten und eine zweite, die plots, die nichts trägt aber der Griff:
Hier ist das Ergebnis: