用Python中的TeX在matplotlib标签中添加换行符?

时间:2010-04-17 22:32:17

标签: python plot graphing 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(用'$'括起来)和换行符很重要。

4 个答案:

答案 0 :(得分:85)

您可以充分利用这两个方面:自动“转义”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$")

(而不是使用三行,用单个空格分隔字符串是另一种选择)。

实际上,Python会自动连接彼此跟随的字符串文字,您可以将原始字符串(r"…")和字符串与字符插值("\n")混合。

答案 1 :(得分:28)

您的示例正是如何完成的,您使用\n。您需要取消r前缀,因此python不会将其视为原始字符串

答案 2 :(得分:10)

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")

只需将字符串与原始字符串形式的换行符连接即可。

答案 3 :(得分:2)

以下matplotlib python脚本使用新行

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

以下没有新行。注意文本

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