Изменить тип шрифта некоторых букв в слове на графике Matplotlib - PullRequest
0 голосов
/ 19 сентября 2018

Скажем, к примеру, это график, который я хочу сделать с «L» в «LEGEND» другим шрифтом.

import matplotlib.pyplot as plt
plt.plot([1,2,3],[4,5,6])
plt.legend(['LEGEND'])
plt.show()

enter image description here

В настоящее время я выделяю текст, который хочу изменить, и меняю шрифт для всей функции.Вот так.

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
font_name = fm.FontProperties('Rage Italic').get_name()
plt.plot([1,2,3],[4,5,6])
plt.legend(['L$EGEND$'],prop={'family':font_name, 'size':14})
plt.show()

enter image description here

Есть ли более простой способ сделать это, потому что в моем реальном проекте мне пришлось сделать что-то подобное$($l$/w)_{sub} = 1$ чтобы изменить шрифт l в коде, который был довольно громоздким.

1 Ответ

0 голосов
/ 20 сентября 2018

Обратите внимание, что если вы не используете usetex=True, вы не будете использовать латекс, а вместо этого mathtext matplotlib.Это позволяет вам использовать различные модификации шрифта, такие же известные из латекса, как \mathit для курсивного текста и т. Д.

Следовательно, вы можете выбрать что-то вроде

ax.legend(['$\mathcal{L}\mathrm{EG}\mathit{END}$'], prop={'size':14})

enter image description here

Использование истинного латексного рендеринга действительно может вам в этом помочь, поскольку в принципе позволяет использовать столько разных шрифтов, сколько вы хотите.

import matplotlib.pyplot as plt
plt.rcParams['text.usetex'] = True
plt.rcParams['text.latex.preamble'] = [
        r'\usepackage[T1]{fontenc}',
        r'\usepackage{cyklop}' ]


fig, ax=plt.subplots()
ax.plot([1,1,1,1,10])

tx = r'{\fontfamily{cyklop}\selectfont L}' + \
     r'{\fontfamily{bch}\selectfont E}' + \
     r'{\fontfamily{phv}\selectfont G}' + \
     r'{\fontfamily{lmtt}\selectfont END}'

ax.legend([tx], prop={'size':14})

plt.show()

enter image description here

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