Sekundäre Achse mit twinx(): Zur Legende hinzufügen
Betrachten Sie ein Diagramm mit zwei y-Achsen, erstellt mit twinx(), mit Zeilen für jede Achse beschriftet. Bei Verwendung von legend() werden jedoch nur Beschriftungen für eine Achse angezeigt, mit Ausnahme der Beschriftung für die zweite Achse. Ziel dieses Artikels ist es, dieses Problem zu beheben und Ihnen eine Anleitung zum Hinzufügen der fehlenden Beschriftung zur Legende zu geben.
Twinx() und Legenden
Im bereitgestellten Beispiel ist twinx() wird verwendet, um eine zweite y-Achse (ax2) zu erstellen, die dieselbe x-Achse (Zeit) wie die primäre Achse (ax) hat. Beim Versuch, alle Beschriftungen in der Legende anzuzeigen, sind nur diejenigen sichtbar, die mit ax (Swdown und Rn) verknüpft sind, während die Beschriftung für ax2 (temp) fehlt.
Fehlende Beschriftung hinzufügen
Um die fehlende Beschriftung in die Legende aufzunehmen, gibt es zwei Ansätze:
Ansatz 1: Mehrere Legenden
Fügen Sie die folgende Zeile hinzu, um eine zu erstellen separate Legende für Achse2:
<code class="python">ax2.legend(loc=0)</code>
Dadurch erhalten Sie zwei Legenden, eine für jede Achse.
Ansatz 2: Konsolidierte Legende
Zu Führen Sie die folgenden Schritte aus, um alle Beschriftungen in einer einzigen Legende zusammenzufassen:
Erstellen Sie eine Liste aller Linienobjekte (Linien von beiden Achsen):
<code class="python">lns = lns1 + lns2 + lns3</code>
Beschriftungen für jede Zeile extrahieren:
<code class="python">labs = [l.get_label() for l in lns]</code>
Verwenden Sie die Legendenfunktion, um alle Beschriftungen zu einer einzigen Legende auf der Achse hinzuzufügen:
<code class="python">ax.legend(lns, labs, loc=0)</code>
Beispiel
Der folgende modifizierte Code zeigt, wie mit Ansatz 2 die temporäre Beschriftung zur Legende hinzugefügt wird:
<code class="python"># ... (code as before) # Combine lines and labels lns = lns1 + lns2 + lns3 labs = [l.get_label() for l in lns] ax.legend(lns, labs, loc=0) # ... (remaining code)</code>
Dies führt zu einer einzelnen Legende, die alle Zeilenbeschriftungen enthält: Swdown, Rn und temp.
Das obige ist der detaillierte Inhalt vonWie werden Beschriftungen für beide Achsen in einer Twinx()-Plotlegende angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!