ホームページ  >  記事  >  バックエンド開発  >  Matplotlib で `twinx()` を使用する場合、単一の凡例に両方の軸のラベルを表示するにはどうすればよいですか?

Matplotlib で `twinx()` を使用する場合、単一の凡例に両方の軸のラベルを表示するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 06:16:01470ブラウズ

How do I display labels from both axes in a single legend when using `twinx()` in Matplotlib?

Twinx() プロットへの二次軸凡例の追加

twinx() を使用して作成された 2 つの y 軸を持つプロットで、行にラベルを付けて凡例に表示するのは難しい場合があります。最初は、主軸のラベルのみが凡例に表示されます。

この問題を解決するには、次の行を使用して副軸の凡例を追加します。

ax2.legend(loc=0)

これにより、次のようになります。各軸に 1 つずつ、2 つの別個の凡例。

ただし、すべてのラベルを 1 つの凡例に表示したい場合は、次の手順に従います。手順:

  1. 両方の軸を定義し、線をプロットします:

    ax = fig.add_subplot(111)
    ax2 = ax.twinx()
    
    lns1 = ax.plot(...)
    lns2 = ax.plot(...)
    lns3 = ax2.plot(...)
  2. 凡例のハンドルとラベルを定義します:

    lns = lns1 + lns2 + lns3
    labs = [l.get_label() for l in lns]
  3. 凡例を追加します使用:

    ax.legend(lns, labs, loc=0)

この方法では、すべての軸ラベルが 1 つの凡例に表示されます。

以上がMatplotlib で `twinx()` を使用する場合、単一の凡例に両方の軸のラベルを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。