Heim >Backend-Entwicklung >Python-Tutorial >Wie werden Beschriftungen für beide Achsen in einer Twinx()-Plotlegende angezeigt?

Wie werden Beschriftungen für beide Achsen in einer Twinx()-Plotlegende angezeigt?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 07:38:02898Durchsuche

How to Display Labels for Both Axes in a Twinx() Plot Legend?

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:

  1. Erstellen Sie eine Liste aller Linienobjekte (Linien von beiden Achsen):

    <code class="python">lns = lns1 + lns2 + lns3</code>
  2. Beschriftungen für jede Zeile extrahieren:

    <code class="python">labs = [l.get_label() for l in lns]</code>
  3. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn