Python matplotlib赢得';是否在图例中写入\n字符?
由于某些原因,我无法让Python matplotlib赢得';是否在图例中写入\n字符?,python,matplotlib,latex,Python,Matplotlib,Latex,由于某些原因,我无法让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
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中打开了一个窗口,但我突然想到我可能做错了什么,所以我最好问一下。如果是,我将删除并关闭它。尝试使用原始字符串文字:r'$U{c}\approach%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()
[8]中的plt.scatter([0.5,0.5],[0.5,0.5],label=r'$U_{c}\大约%0.1f$'%22)
出[8]:
在[9]中:plt.legend(fancybox=True,loc='best')
出[9]:
In[10]:plt.show()
发生这种情况的原因如下:
- 如果字符串文本前面没有
,解释器会将字符串解释为: “$U{c}”+'\a'+'pprox 22.0$”r
是ASCII贝尔的特殊转义字符:'\a'
BEL
- 然后将该解释字符串传递给TeX解析器。但是,由于
被混搭,TeX解析器不知道如何将字符串转换为正确的TeX'\approx'
为确保字符串中的反斜杠(
\
)不会产生奇怪的转义字符,请在前面添加r
。当然,也可以添加r
。谢谢你,比尔,这是一个很好的回答。