使用 ttc 字体时,PyPlot savefig() 错误“TrueType 字体缺少表格”

Nor*_*man 5 fonts matplotlib julia

我在 macOS 10.13 上使用来自 Julia 语言的 PyPlot 包。这是我产生问题的代码:

using PyPlot
PyPlot.svg(true)

function myplot()
  my_font=matplotlib[:font_manager][:FontProperties](fname = "/System/Library/Fonts/Helvetica.ttc")
  fig, ax = subplots()
  ax[:plot](rand(10), rand(10), linewidth = 2)

  for tick in ax[:xaxis][:get_major_ticks]()
    tick[:label][:set_fontproperties](my_font)
  end
  for tick in ax[:yaxis][:get_major_ticks]()
    tick[:label][:set_fontproperties](my_font)
  end
  savefig("figure.pdf")
end

myplot()
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要将刻度标签的字体更改为 Helvetica,这可以通过 ttc 文件在我的 Mac 上使用。该图在 Jupyter Notebook 中正常显示。但是,使用savefig(),它不起作用:

RuntimeError('TrueType font is missing table',)
Run Code Online (Sandbox Code Playgroud)

我已经删除了~/.matplotlib/fontList.py3k.cache~/.matplotlib/tex.cache。我还需要做什么才能savefig()工作?谢谢!

小智 0

我建议你换个字体

matplotlib.rcParams['font.family'] = 'Calibri'
Run Code Online (Sandbox Code Playgroud)