比如说, 这是我想用不同字体的“LEGEND”中的“L”绘制的图。
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
,否则您将不会使用 Latex,而是使用 matplotlib 的 mathtext 。
这允许您对字体使用不同类型的修改,与 latex 中已知的相同,例如用于斜体文本的 \mathit
等。
因此您可能会选择类似的东西
ax.legend(['$\mathcal{L}\mathrm{EG}\mathit{END}$'], prop={'size':14})
使用真正的 latex 渲染实际上可能对您有更多帮助,因为原则上它允许您使用任意数量的不同字体。
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()
关于python - 更改 Matplotlib 图中单词中某些字母的字体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410618/