如何在Matplotlib中使用Latex正确书写“<”和“>”符号

4
我想用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')

但是在绘图中,“<”和“>”符号无法识别,我得到了: ¿ 或 ¡ enter image description here

我也尝试将它们放在$$之间,但不起作用... 我该怎么解决这个问题?


感谢您的第一篇帖子,但很遗憾我不知道如何提供帮助。 - Patrick Artner
你的意思是它没有工作?请参考Davis Herring的答案或者我的答案中的示例,了解在哪里精确地放置$$符号。还要注意“转义”的&符号。 - NickD
如果答案有效,请接受它。请参见 https://stackoverflow.com/help/accepted-answer。 - NickD
2个回答

2
请注意,每个标签(应用+后)都是一个包含两个$的字符串。 <>表示您只想在这些标记之间使用,因此将其中一个移动以包括它。
还要注意,&同样特殊,但在这种情况下,您可以在其前面放置\。 (不是说排版数学通常使用&&,而是\wedge或“and”。)

1
这似乎是因为您使用了一个文本字体(“衬线”),该字体在预期位置上没有<和>字形,而是在相应的插槽中具有¿和¡字形。我记得,最初的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')

谢谢大家!最终我选择使用了最后一个解决方案(将字体更改为等宽字体)。它运行良好! :) - Leonardo Rizzuto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接