在学术论文中的图件(Scientific figures),优秀的图有四个特点:简单(Simple)、清晰(Clean)、易读(undisputedly easy to read)、美观。而Matplotlib可以做绝大多数的图,使用非常广泛,而且非常容易上手,可以保存高质量的矢量图(eps,pdf,ps)。在使用之前当然得关心它的字体库了。
Helvetica字体
绘图中常用的字体,而且挺美观。大家熟知的gmt的默认字体就是Helvetica。可是Matplotlib并没有自带这个字体库。其实Helvetica和Arial字体之间差别很小。
查看Matplotlib自带字体库
通过以下font_manager
可以查看Matplotlib自带的字体库
import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
安装Helvetica字体库
在Mac系统中,Helvetica字体保存在.dfont
文件中,但是Matplotlib访问不了这个文件。我们需要通过以下步骤来实现其访问权限
找到Helvetica字体的系统中的位置
直接使用命令查看:ls /System/Library/Fonts/Helvetica*
或者用Mac的字体查看器查看,然后在finder中显示
将Mac-Helvetica字体转换为ttf-Helvetica
网上有人推荐用fondu
程序实现这两个字体之间的转换,安装:brew install fondu
.
但是如果没有找到.dfont
文件,只有.ttc
或者转换失败,可以使用在线转换程序进行转换。
fondu提示错误: Can't find an appropriate resource fork in Helvetica.ttc
加入字体搜索路径
- 将转换成功的
.ttf
字体文件拷贝到~/Library/Fonts
路径下 - 删除matplotlib字体缓存文件:
rm ~/.matplotlib/fontList.json
- 设置默认字体:
matplotlib.rcParams["font.family"] = 'Helvetica'
显示效果
不仔细看根本看不出来这两者的区别