首頁  >  文章  >  後端開發  >  如何在 Twinx() 繪圖圖例中顯示兩個軸的標籤?

如何在 Twinx() 繪圖圖例中顯示兩個軸的標籤?

Patricia Arquette
Patricia Arquette原創
2024-11-03 07:38:02823瀏覽

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

使用twinx() 的輔助軸:加到圖例

考慮使用twinx() 建立的具有兩個y 軸的圖,其中為每個軸標記的線。然而,在使用 legend() 時,它僅顯示一個軸的標籤,不包括第二個軸的標籤。本文旨在解決此問題並指導您在圖例中添加缺少的標籤。

Twinx() 和圖例

在提供的範例中,twinx()用於建立與主軸(ax) 共用相同x 軸(時間)的第二個y 軸(ax2)。嘗試顯示圖例中的所有標籤時,只有與 ax 相關的標籤(Swdown 和 Rn)可見,而 ax2 (temp) 的標籤則不存在。

新增缺少的標籤

要在圖例中包含缺少的標籤,有兩種方法:

方法1:多個圖例

新增下列行以建立ax2 的單獨圖例:

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

這將為您提供兩個圖例,每個軸一個。

方法2:合併圖例

至將所有標籤組合成一個圖例,請依照下列步驟操作:

  1. 建立所有線條物件(來自兩個軸的線條)的清單:

    <code class="python">lns = lns1 + lns2 + lns3</code>
  2. 提取每行的標籤:

    <code class="python">labs = [l.get_label() for l in lns]</code>
  3. 使用圖例函數將所有標籤加入ax 上的單一圖例中:

    <code class="python">ax.legend(lns, labs, loc=0)</code>

範例

以下修改後的程式碼示範如何使用方法2 將臨時標籤加入圖例:

<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>

這將產生一個包含所有線路標籤的圖例:Swdown、Rn 和temp。

以上是如何在 Twinx() 繪圖圖例中顯示兩個軸的標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn