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

时间:2018-06-05 15:06:51

标签: python matplotlib syntax latex

我试图使用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')

但在情节中''&lt;'和'&gt;'符号无法识别,我得到: 要么 enter image description here

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

2 个答案:

答案 0 :(得分:2)

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

另请注意,&同样特别,但在这种情况下,您只需在其前面添加\即可。 (不是排版数学通常使用&&,而是\wedge或只是“和”。)

答案 1 :(得分:1)

这似乎是由于您使用 NOT 的文本字体(“serif”)而导致的&lt;和&gt;预期位置的字形。它在相应的插槽中具有¿和¡字形。 IIRC,原始的CM字体就是这样,但我认为“现代”系统使用的是更现代的字体,这些字体没有原始CM字体的限制。

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

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

或者你可以使用&lt;的文本版本。和&gt;但是你不得不担心间距:

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

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

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