首页 文章

为什么基于矢量的图像文件包含损坏的字符?

提问于
浏览
1

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

correctly rendered percent sign

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

incorrectly rendered percent sign

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

你知道为什么会这样吗?

2 回答

  • 3

    好的,这次我可以自己回答我的问题 . 在设置文件 matplotlibrc 中,我不得不将标准设置 3 的设置 pdf.fonttypeps.fonttype 更改为输出类型3为 42 ,代表TrueType . 我不是字体专家,但似乎matplotlib使用的标准字体是TrueType字体 . 因此,必须设置正确的字体类型 .

    在Python中:

    import matplotlib as mpl
    mpl.rcParams['pdf.fonttype']=42
    
  • 0

    使用字体类型3(表示PDF或PS的本机字体格式)时,字体是子集 . 在matplotlib 1.2之前的某些字体的字体子集代码中存在错误 .

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

相关问题