我在OSX 10.8.2上使用Python 2.7.3和matplotlib 1.1.1 . 当我将绘图导出为基于位图的格式(如JPEG或PNG)时,百分号将正确呈现,如下所示:
但是,当我将它们导出为基于矢量的格式(如PDF或PS)时,我会得到:
我没有测试过所有字符,但很可能会出现其他渲染错误 . 我选择哪个后端并不重要,例如 PDF
,我总是使用基于矢量的文件格式来获取这个不正确的字符 . 我使用matplotlib的标准字体设置,也就是说,这里没有自定义 .
你知道为什么会这样吗?
2 回答
好的,这次我可以自己回答我的问题 . 在设置文件
matplotlibrc
中,我不得不将标准设置3
的设置pdf.fonttype
和ps.fonttype
更改为输出类型3为42
,代表TrueType . 我不是字体专家,但似乎matplotlib使用的标准字体是TrueType字体 . 因此,必须设置正确的字体类型 .在Python中:
使用字体类型3(表示PDF或PS的本机字体格式)时,字体是子集 . 在matplotlib 1.2之前的某些字体的字体子集代码中存在错误 .
因此,虽然这是一个有效的解决方法,但它会使文件更大 . 如果可以,最好升级matplotlib .