我试图使用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;'符号无法识别,我得到: 要么
我还试图将它们放在$$之间,但它正在工作...... 我该如何解决这个问题?
答案 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')