matplotlib字体设置看这一篇就够了

简介: matplotlib字体设置看这一篇就够了

1 简介

matplotlib作为数据可视化的利器,被广泛用于数据分析之中,但不太友好的是matplotlib中书写非英文文字内容时,如果不事先对字体进行相关设置,会发现绘制出的诸如「中文」等均显示为「方块乱码」,而今天的内容,我们就来小小总结一下matplotlib中字体设置的常用技巧。

图1

2 在matplotlib中设置字体的常用方法

matplotlib中设置字体的方法按作用范围可分为全局设置与临时设置:

2.1 在matplotlib中设置全局字体

我们在默认状态下使用matplotlib书写中文内容时之所以显示出乱码,是因为matplotlib默认的字体为英文字体,导致许多unicode编码的语言文字都无法书写。

而全局设置字体的方式,指的是我们可以通过修改本地配置文件或在程序开头设置字体相关参数,从而人为地为当前kernel下的matplotlib规定使用指定的字体,主要有以下几种情况:

  • 「使用系统自带字体」

所谓「系统自带字体」,譬如对于windows,其系统盘Windows/Fonts下的诸多已安装到系统中的字体:

图2

当然,matplotlib可以检测到的字体不止上述的这些,我们可以通过下列方式查看matplotlib中默认已经识别到的所有可用字体:

import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
    # 查看字体名以及对应的字体文件名
    print(font.name, '-', font.fname)

图3

其中在font_manager.fontManager.ttflist中迭代到的每个对象,其name属性即为我们下面设置字体要使用到的名称,以「华文琥珀」为例,我们先查看到其对应的字体文件名称:

图4

接着我们写两行程序来找到其对应的名称:

图5

接着按照plt.rcParams['font.sans-serif'] = 字体名称的格式设置即可:

图6

可以看到这时我们全局所有文字都变成「华文琥珀」

  • 「使用任意的字体」

如果你想要的字体不在系统默认字体中,且你只想临时使用不想安装到系统字体中,则可以利用font_manager.fontManager.addfont()来传入字体文件路径临时注册一个字体,以我下载的三方字体文件MaShanZheng-Regular.ttf为例:

图7 图8

2.2 在matplotlib中设置局部字体

而如果你只是想要在数据可视化作品中的部分元素譬如文字标注中临时使用一下字体,则可以利用font_manager.FontProperties()将字体路径作为fname参数传入,并传入到对应matplotlib绘图API相应参数中,以text()为例:

图9

而刻度标签则可以参考下面的方式:

图10

目录
相关文章
|
9月前
|
数据可视化 数据挖掘 Python
【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)
【数据分析与可视化】Matplotlib中动态rc参数设置详解与实战(图文解释 附源码)
390 0
|
3月前
|
Linux Python Windows
Matplotlib 中设置自定义中文字体的正确姿势
【11月更文挑战第16天】Matplotlib 默认不支持中文字体显示,需手动配置。方法包括:1) 修改全局字体设置,适用于整个脚本;2) 局部设置特定元素的字体;3) 使用系统字体名称,但可能因系统而异。通过这些方法可以有效解决中文乱码问题,确保图表中文本的正确显示。
204 3
|
8月前
|
Python
matplotlib中改变字体的方法
matplotlib中改变字体的方法
|
9月前
|
搜索推荐 数据可视化 Python
Matplotlib图表中的数据标签与图例设置
【4月更文挑战第17天】这篇文章介绍了如何在Python的Matplotlib库中设置数据标签和图例,以增强图表的可读性和解释性。主要内容包括:使用`text`函数添加基本和自定义数据标签,以及自动和手动创建图例。图例的位置和样式可通过`loc`和相关参数调整。文章强调了数据标签和图例结合使用的重要性,提供了一个综合示例来展示实践方法。良好的图表设计旨在清晰有效地传达信息。
|
数据可视化 关系型数据库 索引
【100天精通Python】Day63:Python可视化_Matplotlib绘制子图,子图网格布局属性设置等示例+代码
【100天精通Python】Day63:Python可视化_Matplotlib绘制子图,子图网格布局属性设置等示例+代码
207 0
Python-matplotlib | 绘制双y轴图形(图例设置)
Python-matplotlib | 绘制双y轴图形(图例设置)
|
数据可视化 Python 容器
Matplotlib数据可视化:三大容器对象与常用设置(上)
Matplotlib数据可视化:三大容器对象与常用设置(上)
Matplotlib数据可视化:三大容器对象与常用设置(上)
|
API Python
python matplotlib.axes相关属性设置(绘图方式、坐标轴、坐标刻度、文本等)
为什么要用 ax ,而不是 plt 呢? 因为在绘制子图过程中,对于每一个子图的不同设置,ax 可以直接实现对于单个子图的设定,因此掌握必要的 ax 设置命令尤为重要!
python matplotlib.axes相关属性设置(绘图方式、坐标轴、坐标刻度、文本等)
|
数据可视化 索引 Python
Matplotlib数据可视化:三大容器对象与常用设置(下)
Matplotlib数据可视化:三大容器对象与常用设置(下)
Matplotlib数据可视化:三大容器对象与常用设置(下)
|
Python
matplotlib设置中文字体显示及全局绘图模板
matplotlib设置中文字体显示及全局绘图模板
457 0
matplotlib设置中文字体显示及全局绘图模板