为什么我在绘图标签中尝试使用LaTeX时会出错

问题描述 投票:7回答:3

我试着表明:

...作为我的情节'x轴标签。为此我使用pylab.figtext()函数,即:

py.figtext(0.5, 0.05, "$k=2,\left \langle \left | -k \right |;k \right \rangle, 
k\in \mathbb{N}_{+}\cup\left \{ 0 \right \}$", rotation='horizontal', size='12')

不幸的是,我得到错误:

ValueError: 
$k=2,\left \langle \left | -k 
ight |;k 
ight 
angle, k\in \mathbb{N}_{+}\cup\left \{ 0 
ight \}$
^
Expected end of text (at char 0), (line:1, col:1)

这是为什么?我想,我可以自由使用LaTeX。我应该如何在figtext()方法中格式化我的文本以实现上述数学句子?先感谢您。

python matplotlib
3个回答
12
投票

这可以通过1个字母的修正来修复:

py.figtext(0.5, 0.05, r"$k=2,\left \langle \left | -k \right |;k \right \rangle, 
k\in \mathbb{N}_{+}\cup\left \{ 0 \right \}$", rotation='horizontal', size='12')

注意字符串文字之前的r。错误的原因是您的乳胶字符串中的几个字符组合是有效的Python escape sequences,例如制表符和换行符。前缀为r(例如r"foo\nbar")的字符串文字使Python将字符串解释为raw string literal,即不将转义的字符组合转换为特殊字符。


4
投票

字符串中的反斜杠被解释为Python字符串转义符。例如,\r被解释为回车。通过制作你的字符串r"$k=2,\left \langle \left..."来使用原始字符串。


0
投票

在使用this页面上的一个示例时,我遇到了类似的问题,而在我的字符串文字没有帮助之前。我逃脱了$ sign并且它有效。

r"Standardized [\$\$N  (\mu=0, \; \sigma=1)\$\$]",
© www.soinside.com 2019 - 2024. All rights reserved.