использование шрифта символа для греческих символов в TeX через matplotlib - PullRequest
5 голосов
/ 26 января 2010

Чтобы обозначить мои цифры греческими буквами в пакете matplotlib Python, я использую следующее:

import matplotlib
matplotlib.use('PDF')
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['pdf.fonttype'] = 42
# plot figure
# ...
# annotate figure
plt.xlabel(r'$\mu$ = 50')
plt.ylabel(r'$\sigma$ = 1.5')

Это делает равный символ и все справа от него в шрифте Helvetica, как и предполагалось, и греческие символы по умолчанию используют обычный шрифт TeX (который я считаю Times New Roman.)

Как мне сделать так, чтобы вместо греческих букв использовался шрифт "Symbol"? Для меня важно, чтобы он не отображался в шрифте Times TeX по умолчанию.

спасибо за вашу помощь.

1 Ответ

12 голосов
/ 26 января 2010

Забавно, вы должны спросить это; Я боролся с подобными проблемами не так давно. Учитывая сложность обработки шрифтов в TeX, я бы вообще обошел TeX.

Однако у любого приличного Helvetica есть встроенные греческие буквы, поэтому вам не нужно использовать шрифт Symbol. Просто поместите несколько кодовых точек Unicode в вашу строку, например:

plt.xlabel(u'\u03bc = 50')
plt.ylabel(u'\u03c3 = 1.5')

Для поиска кодовых точек этот инструмент поиска и поиска кодов Unicode действительно удобен.

Я не уверен, что и как matplotlib обрабатывает строки Unicode. Если вышеперечисленное не помогает, закодируйте его в кодировке, которую ожидает matplotlib.

(Если вы действительно настаиваете на использовании Symbol: я не думаю, что вы можете использовать несколько шрифтов в одной и той же метке, поэтому вам придется добавить несколько меток и написать код для выравнивания их друг с другом. довольно, но это можно сделать.)

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