twinx() による 2 番目の軸: 凡例への追加
twinx() を使用して作成された 2 つの y 軸を持つプロットを考えます。各軸にラベルが付けられた線。ただし、legend() を使用すると、2 番目の軸のラベルを除き、1 つの軸のラベルのみが表示されます。この記事の目的は、この問題を解決し、欠落しているラベルを凡例に追加する方法を案内することです。
Twinx() と Legends
提供されている例では、twinx()は、主軸 (ax) と同じ x 軸 (時間) を共有する 2 番目の y 軸 (ax2) を作成するために使用されます。凡例内のすべてのラベルを表示しようとすると、ax (Swdown と Rn) に関連付けられたラベルのみが表示され、ax2 (temp) のラベルは表示されません。
欠落しているラベルの追加
凡例に欠落しているラベルを含めるには、2 つの方法があります。
方法 1: 複数の凡例
次の行を追加して、 ax2 の個別の凡例:
<code class="python">ax2.legend(loc=0)</code>
これにより、軸ごとに 1 つずつ、合計 2 つの凡例が得られます。
アプローチ 2: 凡例の統合
すべてのラベルを 1 つの凡例に結合するには、次の手順に従います。
すべてのライン オブジェクト (両方の軸からのライン) のリストを作成します。
<code class="python">lns = lns1 + lns2 + lns3</code>
各行のラベルを抽出します:
<code class="python">labs = [l.get_label() for l in lns]</code>
凡例関数を使用して、すべてのラベルを ax の 1 つの凡例に追加します:
<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 中国語 Web サイトの他の関連記事を参照してください。