出于某种原因,我无法让matplotlib
在传奇中记下\approx
LaTeX符号。
这是一个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()
请注意,第一行不会显示\approx
字符或后面的值,但\simeq
和\sim
都可以正常工作。
我刚刚在matplotlib
的Github中打开new issue,但我突然意识到我可能做错了所以我最好问一下。如果我,我将删除关闭它。
答案 0 :(得分:6)
尝试使用原始字符串文字: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()
发生这种情况的原因如下:
如果没有字符串文字的r
,则解释器会将字符串解释为:
'$ U_ {c}'+'\ a'+'pprox 22.0 $'
'\a'
是ASCII响铃的特殊转义字符:BEL
。
'\approx'
已被混淆,因此TeX解析器不知道如何将字符串转换为正确的TeX。 要确保字符串中的反斜杠(\
)没有创建奇怪的转义字符,请在前面添加r
。