matplotlib で軸ラベルを右または上に揃えるにはどうすればいいですか? 質問する

matplotlib で軸ラベルを右または上に揃えるにはどうすればいいですか? 質問する

デフォルトでは、matplotlib軸ラベルは軸の中央にプロットされます。水平軸と垂直軸の両方で、軸の端に揃うようにラベルを移動したいと思います。たとえば、水平軸の場合は次のようになります。

+--------------------+
|                    |
|                    |
|                    |
|                    |
|                    |
+--------------------+
                 label

matplotlib のグローバル設定でそれを行うことは可能ですか?

ベストアンサー1

アップデート

loc=…現在の2023年のMatplotlibには、新しいキーワードが追加されましたplt.[xy]label。ドキュメント文字列
よりxlabel

loc : {'left', 'center', 'right'},
The label position. This is a high-level alternative for passing
parameters *x* and *horizontalalignment*.

簡単に書くと

plt.xlabel('x_description', loc='right')
plt.ylabel('y_description', loc='top')

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


私の他の回答もまだ良い回答です。オブジェクトを取得し、それを変更して元に戻すという考え自体は良いアイデアですが、ここでは別の、よりクリーンな解決策を示します。

...
plt.xlabel('x_description', horizontalalignment='right', x=1.0)
plt.ylabel('y_description', horizontalalignment='right', y=1.0)
...

ご覧のとおり、マジックナンバーはもう存在せず、 はxlabelとの両方で機能しますylabel

どちらの場合も、水平方向の配置を変更することに注意してください。その理由は、最初に垂直方向の配置を変更したときに明らかになりましたylabel

おすすめ記事