(Windows系统)为matplotlib设置中英组合字体:中文宋体+英文Times New Roman
如果你是在配置Linux系统(如服务器)上的matplotlib的字体,请移步:matplotlib设置中英不同字体(Linux系统):中文宋体和英文Times New Roman
第1步:下载组合字体(感谢原作者)
链接: https://pan.baidu.com/s/1vIAqAYhoo-htqhdcJ4BvqQ?pwd=52k8
提取码: 52k8
第2步:将新字体的ttf文件放入matplotlib字体文件夹中
获取位置方式:
import matplotlib
import os
mpl_data_dir = matplotlib.get_data_path()
font_dir = os.path.join(mpl_data_dir, 'fonts')
print("Matplotlib 默认字体目录:", font_dir)
我的位置在:
D:\applications\anaconda\envs\nlp38\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\
其中:nlp38
是我的python环境名称
。
第3步:修改matplotlibrc文件
将262行和270行都解注释,并且在第270行添加字体:SongNTR。
(❗注意:具体行数不一定是这两行,根据下图中的位置找到)
获取位置方式:
import matplotlib
print(matplotlib.matplotlib_fname())
我的位置在:
D:\applications\anaconda\envs\nlp38\Lib\site-packages\matplotlib\mpl-data\matplotlibrc
第4步:修改.matplotlib缓存文件 fontlist-v330.json
打开后插入以下内容:
{
"fname": "fonts\\ttf\\SongNTR.ttf",
"name": "SongNTR",
"style": "normal",
"variant": "normal",
"weight": 700,
"stretch": "normal",
"size": "scalable",
"__class__": "FontEntry"
},
获取文件位置方式:
import matplotlib
import os
cache_dir = matplotlib.get_cachedir()
print("缓存目录:", cache_dir)
# 假设文件名是 fontlist-v330.json(版本号可能不同)
fontlist_file = os.path.join(cache_dir, 'fontlist-v330.json')
print("找到字体缓存文件:", fontlist_file)
我的位置在:
C:\Users\14221\.matplotlib
第5步:重启python
第6步:matplotlib设置字体代码
import matplotlib.pyplot as plt
# 显示中文
plt.rcParams['font.sans-serif'] = ['SongNTR'] ##设置字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示为方块的问题