パンダプロットインターフェイスを介して2番目のy軸でパンダデータフレームをプロットするときに凡例の位置を設定します

コードカルデマイヤー

次のようなドキュメントで説明されているように、パンダプロットインターフェイスを介して、2番目のy軸を使用してパンダデータフレームをプロットしています

df = pd.DataFrame(np.random.randn(24*3, 3),
                  index=pd.date_range('1/1/2019', periods=24*3, freq='h'))
df.columns = ['A (left)', 'B (right)', 'C (right)']
ax = df.plot(secondary_y=['B (right)', 'C (right)'], mark_right=False)
ax.set_ylabel('A scale')
ax.right_ax.set_ylabel('BC scale')
ax.legend(loc='upper right')
plt.show()

ご覧のここに画像の説明を入力してくださいとおり、を使用して位置を設定すると、凡例からエントリが失われますax.legend(loc='upper right')

凡例の位置を設定してすべてのエントリを保持する方法を知っている人はいますか?

前もって感謝します!

チャールズランダウ

.get_legend_handles_labels()より正確な解決策に使用できます

np.random.seed(42)

df = pd.DataFrame(np.random.randn(24*3, 3),
                  index=pd.date_range('1/1/2019', periods=24*3, freq='h'))
df.columns = ['A (left)', 'B (right)', 'C (right)']
ax = df.plot(secondary_y=['B (right)', 'C (right)'], mark_right=False)
ax.set_ylabel('A scale')
ax.right_ax.set_ylabel('BC scale')

h1, l1 = ax.get_legend_handles_labels()
h2, l2 = ax.right_ax.get_legend_handles_labels()
ax.legend(h1+h2, l1+l2, loc=1)

ここに画像の説明を入力してください

この方法を使用する必要がある理由はaxax.right_axそれぞれに独自の凡例があり、それらを同じ場所に設定するだけで、それらが互いに重なり合うようになるためです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ