1. ホーム
  2. python

[解決済み] Matplotlib のプロット外の自動凡例 [重複].

2022-03-01 09:42:19

質問

キーワードを使おうとしています。 bbox_to_anchor() をPythonのmatplotlibのプロットで使用することができます。

以下は、私が作成した非常に基本的なプロットです。 この例に基づいて . :

import matplotlib.pyplot as plt
x = [1,2,3]
plt.subplot(211)
plt.plot(x, label="test1")
plt.plot([3,2,1], label="test2")
plt.legend(bbox_to_anchor=(0, -0.15, 1, 0), loc=2, ncol=2, mode="expand", borderaxespad=0)
plt.show()

凡例を自動的にプロットの外側に配置するために bbox_to_anchor() . この例では bbox_to_anchor() には4つの引数が記載されています。

この特定の例 (上) では、凡例はプロットの下に配置されているので、プロットが変更される (フォントサイズ、軸タイトルの削除、など) たびに、数値 -0.15 を手動で入力する必要があります。 次のような場合に、この4つの数値を自動的に計算することは可能でしょうか。 :

  1. プロットの下の凡例
  2. プロット上部の凡例
  3. プロットの右側に凡例

もしそうでなければ、Pythonで、これらの数値について良い推測をすることは可能でしょうか?

また、上記のサンプルコードでは、最後の2つの数字を bbox_to_anchor() が何なのか、どのように機能するのか理解できないので、1 と 0 にしました。 の最後の2つの数値は何ですか? bbox_to_anchor() の意味は?

どのように解決するのですか?

EDIT

ImportanceOfBeingErnestの解答を使用することを強くお勧めします。 凡例をプロットの外に出す方法

こちらの方が分かりやすいですね。

import matplotlib.pyplot as plt
x = [1,2,3]
plt.subplot(211)
plt.plot(x, label="test1")
plt.plot([3,2,1], label="test2")
plt.legend(bbox_to_anchor=(0, 1), loc='upper left', ncol=1)
plt.show()

では、座標(x,y)で遊んでみましょう。例えば loc を使うことができます。

valid locations are:
right
center left
upper right
lower right
best
center
lower left
center right
upper left
upper center
lower center