在Maptlotlib中使用Helvetica字体

简介: 关注九天学者微信公众号(扫码关注)第一时间获取技术贴更新!在学术论文中的图件(Scientific figures),优秀的图有四个特点:简单(Simple)、清晰(Clean)、易读(undisputedly easy to read)、美观。

关注九天学者微信公众号(扫码关注)第一时间获取技术贴更新!


img_7b06173bc7abe1f365071b5daf712eee.png

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

img_759ff81177f3589ab143fce1381a9d07.png
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'

显示效果

img_dbc0e93c368df7cbcfb1364e3d1c81d5.png
Arial
img_74bf9c43b4a2534ac2b4df32652c623b.png
Helvetica

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


关注九天学者微信公众号(扫码关注)第一时间获取技术贴更新!


相关文章
|
2月前
|
区块链 Python
9-18|图片上生成字体设置字体大小
9-18|图片上生成字体设置字体大小
|
2月前
字体样式属性
字体样式属性。
71 0
|
6月前
|
安全
字体系列
字体系列。
72 1
|
Java
关于TrueType字体的gasp技术说明
关于TrueType字体的gasp技术说明
112 0
|
前端开发 开发者
LaTeX:字体字号榜值对比
LaTeX 的字体大小设置有 `\small, \large` 等,与 Word 上的字号大小有对应
502 0
|
图形学
字体问题
字体问题
167 0
markdown编辑器(颜色、大小、字体)
我是黑体字 我是微软雅黑 我是楷体 呈现效果 我是黑体字我是微软雅黑我是楷体 浏览器默认值是 3 颜色值 参考:CSDN-markdown编辑器语法——字体、字号与颜色
1704 0