用TeX在Python中把换行符放在matplotlib标签中?

如何在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不把它当作一个原始的string

您可以拥有两全其美:自动“转义”LaTeX命令换行符:

 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$") 

(而不是使用三行,单个空格分隔string是另一种select)。

事实上,Python会自动连接string文字,并且可以混合原始string( r"…" )和带有字符插值的string( "\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") 

只是用一个不是原始stringforms的换行符连接string。

下面的matplotlib python脚本用新行创build文本

 ax.text(10, 70, 'shock size \n $n-n_{fd}$') 

以下没有新的一行。 注意文本前的r

 ax.text(10, 70, r'shock size \n $n-n_{fd}$')