在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

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


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


相关文章
|
机器学习/深度学习 人工智能 负载均衡
基于 NVIDIA Megatron-Core 的 MoE LLM 实现和训练优化
本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大型语言模型(LLM)实现与训练优化上的创新工作。
|
SQL 存储 人工智能
ISO 专家解读 | 什么是 GQL 国际标准图查询语言
4 月 12 日,图查询标准语言 GQL(Graph Query Language)正式发布。与此同时,悦数图数据库 v5.0 宣布原生支持 GQL。GQL 一经问世,便在图行业内外引起广泛关注, ISO 数据库语言项目召集人 Keith W. Hare 发布了一篇对 GQL 的解读文章。让我们跟随专家的视角,来了解一下什么是 GQL,以及 GQL 数据库语言的功能。
为什么阿里百炼不能用
该代码段尝试使用DashScope调用`baichuan2-turbo`模型,并打印请求结果。然而,请求被拒绝,返回的请求ID为`01a480ae-57b1-9876-b496-ea5529730d15`,状态码为`403`,错误代码为`AccessDenied`,提示访问被拒绝。建议检查API密钥和权限设置。
|
自然语言处理 IDE 测试技术
通义灵码怎么样?分为哪些版本,看看基础能力多少分?
通义灵码是一款基于通义大模型的智能编码辅助工具,提供实时代码续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释等功能。
|
安全 网络安全 数据安全/隐私保护
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
|
Linux Shell 调度
PBS任务脚本模板及常用服务器PBS命令介绍
【2月更文挑战第21天】本文介绍在Linux服务器中,通过PBS(Portable Batch System)作业管理系统脚本的方式,提交任务到服务器队列,并执行任务的方法~
1063 5
PBS任务脚本模板及常用服务器PBS命令介绍
|
XML JSON 安全
解锁Java 21的新特性:强大而灵活的字符串模板应用
解锁Java 21的新特性:强大而灵活的字符串模板应用
364 0
|
PyTorch 算法框架/工具
训练BERT,我只花了一半的时间
相信很多人都知道Hugging Face,也都用过它的Transformers预训练语言模型,但你们有没有觉得它训练的有点太慢了呢? 这时候,字节第二快的男人要站出来了(第一快是我mentor),手把手教你怎么让训练时间缩短一半。
776 0
|
机器学习/深度学习 数据可视化 Ubuntu
PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形
PlotNeuralNet:可以创建任何神经网络的可视化图表,并且这个LaTeX包有Python接口,我们可以方便的调用。
905 0
PlotNeuralNet + ChatGPT创建专业的神经网络的可视化图形
|
SQL API
【vision transformer】DETR原理及代码详解(四)
【vision transformer】DETR原理及代码详解
798 0