用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}$')