TwinX を使用して凡例に主軸と副軸の両方のラベルを追加するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-01 01:09:01
オリジナル
977 人が閲覧しました

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

TwinX の二次軸による凡例表示

twinx() を使用して複数の y 軸を持つプロットで、各行にラベルを追加し、これらを凡例に表示することは課題となる可能性があります。通常、凡例には主軸のラベルのみが表示されます。

2 つの主軸線と 1 つの副軸線のラベルが定義されている次の例を考えてみましょう。

<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>
ログイン後にコピー

この場合の場合、凡例にはラベル「Swdown」と「Rn」のみが表示されます。 2 番目の軸にラベル「temp」を含めるには、次の 2 つの方法を使用できます。

凡例を分離する

1 つのオプションは、2 番目の軸専用の 2 番目の凡例を作成することです。軸。これは、次の行を追加することで実現できます:

<code class="python">ax2.legend(loc=0)</code>
ログイン後にコピー

これにより、軸ごとに 1 つずつ、2 つの個別の凡例が作成されます。

Combined Legend

単一の結合された凡例の場合は、次の手順を実行します:

  1. 凡例に表示するすべての線 (両方の軸から) のリストを作成します:
<code class="python">lns = lns1+lns2+lns3</code>
ログイン後にコピー
  1. 各線からラベルを抽出します:
<code class="python">labs = [l.get_label() for l in lns]</code>
ログイン後にコピー
  1. 主軸 (ax) で legend() 関数を使用し、結合された線リストを渡します。およびラベル リスト:
<code class="python">ax.legend(lns, labs, loc=0)</code>
ログイン後にコピー

これらの手順に従うと、主軸に属しているか副軸に属しているかに関係なく、すべての線ラベルを 1 つの凡例に効果的に表示できます。

以上がTwinX を使用して凡例に主軸と副軸の両方のラベルを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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