我想为演示文稿生成高质量的图表。我正在使用 Python 的 matplotlib 来生成图形。不幸的是,PDF 导出似乎忽略了我的字体设置。
我尝试通过将FontProperties
对象传递给文本绘图函数和全局设置选项来设置字体。作为记录,这里是重现问题的 MWE:
import scipy
import matplotlib
matplotlib.use('cairo')
import matplotlib.pylab as pylab
import matplotlib.font_manager as fm
data = scipy.arange(5)
for font in ['Helvetica', 'Gill Sans']:
fig = pylab.figure()
ax = fig.add_subplot(111)
ax.bar(data, data)
ax.set_xticks(data)
ax.set_xticklabels(data, fontproperties = fm.FontProperties(family = font))
pylab.savefig('foo-%s.pdf' % font)
在这两种情况下,生成的输出都是相同的并且使用 Helvetica(是的,我确实安装了两种字体)。
可以肯定的是,以下内容也无济于事:
matplotlib.rc('font', family = 'Gill Sans')
最后,如果我替换后端,而不是使用本机查看器:
matplotlib.use('MacOSX')
我确实得到了正确的字体显示——但仅在查看器 GUI 中。PDF 输出再次出错。
可以肯定的是——我可以设置其他字体——但只能设置其他类型的字体系列:我可以设置serif
字体或fantasy
或monospace
。但所有无衬线字体似乎都默认为 Helvetica。