1

我在 OSX 10.8.2 上并使用 Python 2.7.3 和 matplotlib 1.1.1。当我将绘图导出为基于位图的格式(例如 JPEG 或 PNG)时,百分号会正确呈现,如下所示:

正确呈现百分号

但是,当我将它们导出为基于矢量的格式(例如 PDF 或 PS)时,我会得到以下信息:

错误地呈现百分号

我没有测试所有字符,但可能会出现其他渲染错误。我选择哪个后端并不重要,例如PDF,我总是使用基于矢量的文件格式来获取这个格式错误的字符。我使用matplotlib的标准字体设置,也就是这里没有自定义。

你知道为什么会这样吗?

4

2 回答 2

3

好吧,这次我可以自己回答我的问题了。在设置文件matplotlibrc中,我必须更改设置pdf.fonttype,并从代表Output Type 3ps.fonttype的标准设置更改为代表TrueType。我不是字体专家,但似乎 matplotlib 使用的标准字体是 TrueType 字体。因此,必须设置正确的字体类型。342

在 Python 中:

import matplotlib as mpl
mpl.rcParams['pdf.fonttype']=42
于 2013-01-12T17:32:07.177 回答
0

当使用字体类型 3(意味着 PDF 或 PS 的本机字体格式)时,字体被子集化。在matplotlib 1.2 左右之前的某些字体的字体子集代码中存在错误。

因此,虽然这是一种有效的解决方法,但它会使文件变得更大。如果可以的话,最好升级 matplotlib。

于 2015-01-23T17:24:32.600 回答