Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib赢得';是否在图例中写入\n字符?_Python_Matplotlib_Latex - Fatal编程技术网

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()

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

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

    “$U{c}”+'\a'+'pprox 22.0$”

  • '\a'
    是ASCII贝尔的特殊转义字符:
    BEL

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

为确保字符串中的反斜杠(
\
)不会产生奇怪的转义字符,请在前面添加
r

当然,也可以添加
r
。谢谢你,比尔,这是一个很好的回答。