【问题标题】:python matplotlib after upgrade changed latex font升级后的python matplotlib更改了乳胶字体
【发布时间】:2018-09-23 09:21:50
【问题描述】:

在升级我的 matplotlib 库 (macOS) 之前,我的人物文本中有以下乳胶字体:

但更新后,我得到以下字体:

在这两个代码中,我都使用以下命令: plt.title(r'$L_x = 1\mathrm{m}, \ \phi_{in}=1$')。 你能帮我找回第一个数字的字体吗?

非常感谢

【问题讨论】:

    标签: python-2.7 matplotlib latex


    【解决方案1】:

    MathText 有自己的字体集。您可以通过rcParammathtext.fontset进行设置。

    #mathtext.fontset : dejavusans ## Should be 'dejavusans' (default),
                                   ## 'dejavuserif', 'cm' (Computer Modern), 'stix',
                                   ## 'stixsans' or 'custom'
    

    要获得衬线 MathText,请使用 dejavuserifcmstix

    例子

    plt.rcParams["mathtext.fontset"] = "stix"
    

    【讨论】:

      【解决方案2】:

      在你的情节之前添加以下几行

      from matplotlib import rc
      rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
      rc('text', usetex=True)
      

      您可能需要挖掘一下才能找到正确的字体,也许您原来的字体不是“无衬线”。

      【讨论】:

      • 您好,感谢您的回复。我收到以下错误:OSError: [Errno 2] No such file or directory: 'latex'
      • 你的电脑上安装了乳胶吗?你可以看到,在终端中输入which latex。无论如何,您可以删除我最后建议的行(因此,删除 rc('text', usetex=True)
      • 是的,我在我的 mac 上安装了 tex live,但是当我在终端中输入“which latex”时,我没有得到输出。此外,当我删除您提到的行时,我收到以下错误: UserWarning: findfont: Font family [u'sans-serif'] not found。回退到 DejaVu Sans (prop.get_family(), self.defaultFamily[fontext]))
      • mmmmh 这很奇怪。该更新可能破坏了乳胶和/或 matplotlib 的某些内容。我看到两个主要选项(1)我给出的没有最后一行的代码有效,但找不到字体“sans-serif”,您可以尝试找到一个有效的(可能是“helvetica”、“times new roman”、. ..) (2) 尝试重新安装乳胶,看看是否可以解决我的代码问题。
      • here 检查哪些字体可用于 matplotlib 的有趣答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多