matplotlib不会在图例中写出\大约LaTeX字符?

Gab*_*iel 4 python latex matplotlib

出于某种原因,我无法在传奇中matplotlib写下\approxLaTeX符号.

这是一个MWE:

import matplotlib.pyplot as plt
plt.scatter([0.5, 0.5], [0.5, 0.5], label='$U_{c} \approx %0.1f$' % 22)
#plt.scatter([0.5, 0.5], [0.5, 0.5], label='$U_{c} \simeq %0.1f$' % 22)
#plt.scatter([0.5, 0.5], [0.5, 0.5], label='$U_{c} \sim %0.1f$' % 22)
plt.legend(fancybox=True, loc='upper right', scatterpoints=1, fontsize=16)
plt.show()
Run Code Online (Sandbox Code Playgroud)

请注意,第一行不会显示\approx字符或之后它的价值,但都\simeq\sim做工精细.

我刚刚在Github上开了一个新问题,matplotlib但我发现我可能做错了所以我最好问一下.如果我,我会的删除 关闭它.

wfl*_*nny 7

尝试使用原始字符串文字:r'$U_{c} \approx %0.1f$'.

In [8]: plt.scatter([0.5, 0.5], [0.5, 0.5], label=r'$U_{c} \approx %0.1f$'%22)
Out[8]: <matplotlib.collections.PathCollection at 0x7f799249e550>
In [9]: plt.legend(fancybox=True, loc='best')
Out[9]: <matplotlib.legend.Legend at 0x7f79925e1550>
In [10]: plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

发生这种情况的原因如下:

  • 如果没有r字符串文字的前面,则解释器将字符串解释为:

    '$ U_ {c}'+'\ a'+'pprox 22.0 $'

  • '\a'是ASCII Bell的特殊转义字符:BEL.

  • 然后将此解释的字符串传递给TeX解析器.但是,由于'\approx'被混淆了,TeX解析器不知道如何将字符串转换为正确的TeX.

要确保\字符串中的反斜杠()不会创建奇怪的转义字符,请添加r前面的内容.