Python matplotlib 画图的 Type 3 fonts 字体不兼容问题解决方法

今天提交论文的时候,edas 系统一直提示 Font font_16 is of type Type 3。感觉是图片问题,于是把图片全都注释掉再提交,果然没有问题。那么图片为什么会提示这个问题呢,网上搜了一下,发现是因为 Python 使用 matplotlib 画图的时候默认是使用 Type 3 字体,但是这个 Type 3 字体对于 edas 系统来说就是不兼容的,所以就提示这个错误。解决方法也很简单,只要把 matplotlib 画图的字体设为 True Type 即可。

一、Python matplotlib 解决字体兼容问题

解决方法如下,在代码最前面加上下面语句,生成 Ture Type 也就是 Type 42 字体:

mport matplotlib
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42

这使得 matplotlib to 使用 Type 42 字体来生成 PostScript 和 PDF 文件。

此外,也可以设置如下:

matplotlib.rcParams['text.usetex'] = True

也可以这样强制生成 Type 1 fonts, 不过可能会改变图形,推荐使用第一种方法。

二、从源文件彻底解决问题

此外,还有一种方法解决的更为彻底。

1、首先找到并修改 `matplotlib` 文件

2、如果你不知道该文件的位置,在 python 中输入以下命令:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

3、修改以下两项即可:

pdf.fonttype : 42
ps.fonttype : 42

参考文献:

  • https://www.cnblogs.com/Dzhouqi/p/4261023.html
  • https://zhuanlan.zhihu.com/p/118020086

【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!