Python matplotlib设置字体
Python matplotlib设置字体
本文作者:Sunny-King
发布时间:2022-08-17 10:39:16 星期三
本文链接:https://www.cnblogs.com/Sunny-King/p/Python-matplotlib_font.html
一、软件版本
首先记录下测试使用的python版本和matplotlib的版本
- python-3.7.0
- matplotlib-2.2.3
import sys
import matplotlib
print(sys.version)
3.7.0 (default, Jun 28 2018, 13:15:42)
[GCC 7.2.0]
print(matplotlib.__version__)
2.2.3
二、使用系统已有字体
对于系统已经安装的字体可以直接使用,不需要额外安装或者下载,此方法比较简单。
1、导入依赖模块
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager
2、查看系统已安装的字体
利用函数\(font\_manager.fontManager.ttflist\)列出可以直接使用的字体
font_list = [x.name for x in font_manager.fontManager.ttflist]
对于列表中已存在的字体可以根据字体名字直接使用
3、配置局部字体
此方法可以更改局部的字体,比如将图片的legend改为Times New Roman字体,其余字体保持不变。
利用字典方法,首先定义一个字体格式字典,在函数种利用关键字传入字体格式
fontdict = {'family': 'Times New Roman',
'size': 15,
'style': 'italic'}
plt.legend(loc='best',prop=fontdict)
类方法利用\(font\_manager.FontProperties\)实例化一个字体的类。
FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, _init=None)
# family: 指定字体类别
# style: 风格 'normal', 'italic' or 'oblique'.
# variant: Either 'normal' or 'small-caps'
# fname: 指定字体文件的绝对路径
my_font = font_manager.FontProperties(family="STIX", size=20)
plt.title("STIX", fontproperties=my_font)
4、配置全局字体
如果需要将图片所有字体保持统一,上述方法需要在每个地方都指定字体略显麻烦。下面方法可以设置全局字体,将图片字体保持统一,使用\(matplotlib.pyplot.rcParams\)指定全局字体
plt.rcParams['font.sans-serif']=['STIX']
三、导入第三方字体
对于系统没有安装的字体需要自行下载,然后指定字体文件的方式选择字体。
1、导入字体
获取下载的第三方字体的路径,可以从网页下载,这里以本人电脑的华文楷体为例,存放路径为当前路径下的Script,文件名为STKAITI.TTF
2、局部使用
利用\(font\_manager.FontProperties\)根据字体文件定义一个字体的类
my_font = font_manager.FontProperties(fname = "Script/STKAITI.TTF")
在需要使用该字体的的地方指定为my_font
plt.title("使用STKAITI字体", fontproperies=my_font)
3、配置全局
首先获取路径下可被识别的字体文件
font_manager.findSystemFonts(fontpaths=["Script"])
# 返回路径下字体文件的列表
font_files = font_manager.findSystemFonts(fontpaths=[font_path])
font_list = font_manager.createFontList(font_files)
font_manager.fontManager.ttflist.extend(font_list)
plt.rcParams['font.family'] = 'STKaiti'
本文作者:Sunny-King
本文链接:文章来源于博客园 https://www.cnblogs.com/Sunny-King/p/Python-matplotlib_font.html
转载要求:欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者
错误修复:如有错误或疑问请联系博主
版权声明:本作品采用署名-非商业使用-禁止演绎 (by-nc-nd)许可协议进行许可
如果本文对您有帮助,请点个赞吧!志同道合的朋友可以点个关注。