ホームページ > バックエンド開発 > Python チュートリアル > Twinx() プロット凡例で両方の軸のラベルを表示するにはどうすればよいですか?

Twinx() プロット凡例で両方の軸のラベルを表示するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-03 07:38:02
オリジナル
906 人が閲覧しました

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

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 つの凡例に結合するには、次の手順に従います。

  1. すべてのライン オブジェクト (両方の軸からのライン) のリストを作成します。

    <code class="python">lns = lns1 + lns2 + lns3</code>
    ログイン後にコピー
  2. 各行のラベルを抽出します:

    <code class="python">labs = [l.get_label() for l in lns]</code>
    ログイン後にコピー
  3. 凡例関数を使用して、すべてのラベルを 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート