Изменить тип шрифта некоторых букв в слове на графике Matplotlib

1

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

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

Изображение 174551

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

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()

Изображение 174551

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

Теги:
matplotlib
plot

1 ответ

0
Лучший ответ

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

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

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

Изображение 174551

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

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()

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню