繁体   English   中英

如何在Matplotlib中使用Latex正确编写'<'和'>'符号

[英]How to correctly write the '<' and '>' symbols using Latex in Matplotlib

我试图使用Matplotlib绘制一个带有图例的图,我想指定用于获取我正在绘制的数据的一些变量的范围。

所以我做了以下事情:

plt.rc('text', usetex=True)

plt.rc('font', family='serif')

plt.plot(E,P,"k*", label=r'with $\\vert \\Delta E \\vert$' + '< 0.039 && Mbc > 5.275') plt.plot(Eit,Pit, 'k.', label=r'after iteration: $\\vert \\Delta E \\vert$ < 0.098 && Mbc > 5.273')

但在情节中,'<'和'>'符号无法识别,我得到:¿或¡ 在此输入图像描述

我也试图将它们放在$$之间,但它正在工作......我该如何解决这个问题?

请注意,每个label (在应用+之后)都是包含两个$ s的字符串。 <>表示您只想这些标记之间进行操作 ,因此请移动其中一个以包含它。

另请注意, &同样特别,但在这种情况下,你可以只在它前面放一个\\ (不是那种排版数学通常使用&& ,而是\\wedge或只是“和”。)

这似乎是由您使用文本字体(“衬线”)引起的具有在预期的地方<和>字形。 它在相应的插槽中具有¿和¡字形。 IIRC,原始的CM字体做到了这一点,但我认为“现代”系统使用更多的现代字体,没有原始CM字体的限制。

您可以将相关部分放在数学模式中,就像Davis Herring在他的回答中所说的那样 - 这可能是最好的方法,因为这些是数学符号,这使您免于必须找到具有“正确”字形的字体的疯狂:

label=r'with $\vert \Delta E \vert < 0.039$ \&\& $Mbc > 5.275$')

或者您可以使用<和>的文本版本,但您必须担心间距:

label=r'with $\vert \Delta E \vert$  \textless 0.039 \&\& Mbc \textgreater 5.275')

或者您可以使用在相应插槽中具有这些字形的字体:

plt.rc('font', family='monospace')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM