在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

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


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


相关文章
|
Java Linux 程序员
linux实现定时备份文件到百度网盘详细教程
作为一个程序员,数据备份尤为重要,本文主要介绍的是将服务器上的某文件定时备份到百度网盘中。主要实现思路是:安装pip、byp --> 百度网盘进行授权登陆 --> 使用crontab+bypy实现定时自动数据备份。
2030 0
为什么阿里百炼不能用
该代码段尝试使用DashScope调用`baichuan2-turbo`模型,并打印请求结果。然而,请求被拒绝,返回的请求ID为`01a480ae-57b1-9876-b496-ea5529730d15`,状态码为`403`,错误代码为`AccessDenied`,提示访问被拒绝。建议检查API密钥和权限设置。
|
定位技术 计算机视觉 Python
Anaconda配置Python科学计算库SciPy的方法
Anaconda配置Python科学计算库SciPy的方法
225 1
|
自然语言处理 IDE 测试技术
通义灵码怎么样?分为哪些版本,看看基础能力多少分?
通义灵码是一款基于通义大模型的智能编码辅助工具,提供实时代码续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释等功能。
【Mac用户必看】解锁Word新技能:在Microsoft Word中优雅融入LaTeX公式,科研办公两不误的高效秘籍!
【8月更文挑战第2天】【Mac 系统】探索Word中LaTeX公式的优雅融入之道
1789 10
|
物联网 开发者
NB-IoT 中 PTW 和 eDRX 周期配置 | 学习笔记
快速学习 NB-IoT 中 PTW 和 eDRX 周期配置
NB-IoT 中 PTW 和 eDRX 周期配置 | 学习笔记
|
XML JSON 安全
解锁Java 21的新特性:强大而灵活的字符串模板应用
解锁Java 21的新特性:强大而灵活的字符串模板应用
427 0
|
图形学
Unity——父子关系
Unity——父子关系
441 0
|
SQL API
【vision transformer】DETR原理及代码详解(四)
【vision transformer】DETR原理及代码详解
856 0
|
机器学习/深度学习 数据可视化 Ubuntu
PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形
PlotNeuralNet:可以创建任何神经网络的可视化图表,并且这个LaTeX包有Python接口,我们可以方便的调用。
1068 0
PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形