Скажем, например, это сюжет, который я хочу сделать с "L" в "LEGEND" другим шрифтом.
import matplotlib.pyplot as plt
plt.plot([1,2,3],[4,5,6])
plt.legend(['LEGEND'])
plt.show()
В настоящее время я 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()
Есть ли более простой способ сделать это, потому что в моем фактическом проекте мне пришлось сделать что-то вроде этого $($l$/w)_{sub} = 1$
чтобы изменить шрифт l
во всем коде, который был довольно громоздкий.
Обратите внимание: если вы не используете usetex=True
, вы не будете использовать латекс, а скорее matplotlib mathtext. Это позволяет использовать различные модификации шрифта, такие же известные из латекса, как \mathit
для курсивного текста и т.д.
Следовательно, вы можете выбрать что-то вроде
ax.legend(['$\mathcal{L}\mathrm{EG}\mathit{END}$'], prop={'size':14})
Использование истинного латексного рендеринга может действительно помочь вам больше здесь, потому что в 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()