Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mit TwinX Beschriftungen für Primär- und Sekundärachsen in einer Legende hinzu?

Wie füge ich mit TwinX Beschriftungen für Primär- und Sekundärachsen in einer Legende hinzu?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 01:09:01910Durchsuche

How to Add Labels for Both Primary and Secondary Axes in a Legend with TwinX?

Legendenanzeige mit Sekundärachse in TwinX

In einem Plot mit mehreren Y-Achsen mit twinx(), Hinzufügen von Beschriftungen zu jeder Zeile und Sie in einer Legende darzustellen, kann eine Herausforderung darstellen. Normalerweise erscheinen in der Legende nur Beschriftungen der Primärachse.

Betrachten Sie das folgende Beispiel, in dem Beschriftungen für zwei Primärachsenlinien und eine Sekundärachsenlinie definiert sind:

<code class="python">fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(time, Swdown, '-', label = 'Swdown')
ax.plot(time, Rn, '-', label = 'Rn')
ax2 = ax.twinx()
ax2.plot(time, temp, '-r', label = 'temp')
ax.legend(loc=0)</code>

In diesem Fall , die Legende zeigt nur die Bezeichnungen „Swdown“ und „Rn“. Um die Bezeichnung „temp“ für die Sekundärachse einzuschließen, können zwei Ansätze verwendet werden:

Separate Legenden

Eine Möglichkeit besteht darin, eine zweite Legende speziell für die Sekundärachse zu erstellen Achse. Dies kann durch Hinzufügen der folgenden Zeile erreicht werden:

<code class="python">ax2.legend(loc=0)</code>

Dies führt zu zwei separaten Legenden, eine für jede Achse.

Kombinierte Legende

Für eine einzelne, kombinierte Legende führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Liste aller Linien (von beiden Achsen), die in der Legende erscheinen sollen:
<code class="python">lns = lns1+lns2+lns3</code>
  1. Extrahieren Sie die Beschriftungen aus jeder Zeile:
<code class="python">labs = [l.get_label() for l in lns]</code>
  1. Verwenden Sie die Funktion legend() auf der Primärachse (ax) und übergeben Sie die kombinierte Zeilenliste und Beschriftungsliste:
<code class="python">ax.legend(lns, labs, loc=0)</code>

Durch Befolgen dieser Anweisungen können Sie effektiv alle Linienbeschriftungen in einer einzigen Legende anzeigen, unabhängig davon, ob sie zur primären oder sekundären Achse gehören.

Das obige ist der detaillierte Inhalt vonWie füge ich mit TwinX Beschriftungen für Primär- und Sekundärachsen in einer Legende hinzu?. 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