Matplotlibでプロットのラベル(たとえばxlabelまたはylabel)に改行を追加するにはどうすればよいですか?例えば、
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here")
理想的には、yラベルも中央に配置してください。これを行う方法はありますか?ラベルにTeX(「$」で囲まれている)と改行の両方があることが重要です。
あなたの例は、まさにその方法です。\n
を使用します。ただし、rプレフィックスを外す必要があります。そのためpythonはそれを生の文字列として扱いません
両方の長所を活用できます。LaTeXコマンドの自動「エスケープ」and改行:
plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math"
"\n" # Newline: the backslash is interpreted as usual
r"continues here with $\pi$")
(3行を使用する代わりに、文字列を単一のスペースで区切ることも別のオプションです)。
実際、Pythonは、互いに続く文字列リテラルを自動的に連結し、生の文字列(r"…"
)および文字補間("\n"
)。
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")
文字列を、生の文字列形式ではない改行で連結するだけです。
次のmatplotlib pythonスクリプトは、新しい行でテキストを作成します
ax.text(10, 70, 'shock size \n $n-n_{fd}$')
以下に改行はありません。テキストの前のrに注意してください
ax.text(10, 70, r'shock size \n $n-n_{fd}$')