2021-06-16


在学术论文中的图件(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中显示

Font Book

将Mac-Helvetica字体转换为ttf-Helvetica

网上有人推荐用fondu程序实现这两个字体之间的转换,安装:brew install fondu.
但是如果没有找到.dfont文件,只有.ttc或者转换失败,可以使用在线转换程序进行转换。

fondu提示错误: Can't find an appropriate resource fork in Helvetica.ttc

加入字体搜索路径

  1. 将转换成功的.ttf字体文件拷贝到~/Library/Fonts路径下
  2. 删除matplotlib字体缓存文件:rm ~/.matplotlib/fontList.json
  3. 设置默认字体:matplotlib.rcParams["font.family"] = 'Helvetica'

显示效果

Arial
Helvetica

不仔细看根本看不出来这两者的区别

你可能感兴趣的:(2021-06-16)