PyPlot savefig() 使用 ttc 字体时出现错误"TrueType 字体缺少表"



我在macOS 10.13上使用Julia语言的PyPplot包。这是我生成问题的代码:

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

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

RuntimeError('TrueType font is missing table',)

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

我建议你应该改变一个字体

matplotlib.rcParams['font.family'] = 'Calibri'

最新更新