Как правильно написать символы «<» и «>», используя латекс в Matplotlib - PullRequest
0 голосов
/ 05 июня 2018

Я пытался создать график, используя 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

Я пытался также поместить их между $$, но это работало ... Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Похоже, что это вызвано тем, что вы используете текстовый шрифт ("засечек"), который НЕ содержит глифы <и> в ожидаемых местах.Вместо этого он имеет символы ¿и ¡в соответствующих слотах.IIRC, оригинальные шрифты CM сделали это, но я думал, что «современные» системы используют более современные шрифты, которые не имеют ограничений, которые были у исходных шрифтов CM.

Вы можете поместить соответствующие части в математическом режиме, как ДэвисХерринг предлагает в своем ответе - это, вероятно, лучший способ, потому что это математические символы, и это изолирует вас от сумасшествия от необходимости найти шрифт с «правильными» глифами:

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')
0 голосов
/ 05 июня 2018

Обратите внимание, что каждый из ваших label с (после применения +) является строкой, содержащей два $ с.< или > означает, что вы хотите только между такими маркерами, поэтому переместите один из них, чтобы включить его.

Также обратите внимание, что & аналогично особенный, но в этомВ этом случае вы можете просто поставить \ перед ним.(Не то, чтобы в набираемой математике обычно используется &&, а скорее \wedge или просто «и».)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...