【问题标题】:Change font type of some letters in a word in a Matplotlib plot在 Matplotlib 图中更改单词中某些字母的字体类型
【发布时间】:2019-02-23 21:49:20
【问题描述】:

比如说, 这是我想用不同字体的“LEGEND”中的“L”制作的情节。

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

目前,我将希望不受影响的文本乳胶化,并更改整个函数的字体。像这样。

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 的字体,这非常麻烦。

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    请注意,除非您使用usetex=True,否则您将不会使用latex,而是使用matplotlib 的mathtext。 这允许您对字体使用不同类型的修改,这与乳胶已知的相同,例如 \mathit 用于斜体文本等。

    因此你可能会选择像

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

    使用真正的乳胶渲染实际上可能对您有更多帮助,因为它原则上允许使用任意数量的不同字体。

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

    【讨论】:

      猜你喜欢
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 2018-02-03
      • 2021-07-30
      • 2012-12-26
      • 1970-01-01
      相关资源
      最近更新 更多