Python Matplotlib中文宋体+英文Times New Roman方法
·
1.使用字体合并工具fontforge将新罗马times.ttf和宋体simsun.ttf进行合并,合并后为times_simsun.ttf
合并后的文件预览如下:

2. 将合并后的times_simsun.ttf放置到 matplotlib 字体文件夹中,我的电脑安装路径为E:\python\Lib\site-packages\matplotlib\mpl-data\fonts\ttf,可使用命令 print(matplotlib.matplotlib_fname()) 查看自己电脑上的目录

3.用记事本打开matplotlibrc文件,路径:E:\python\Lib\site-packages\matplotlib\mpl-data

进行如下修改:
Ctrl+F打开查找font.family,找到如图位置,将#删除

同理,将font.sans-serif前面#删除,并在后面添加Times New Roman + SimSun(第一张图显示的字体名字),更改后保存

4.找到fontlist-v330.json,可使用Everything软件或者使用命令print(matplotlib.get_cachedir(),输出目录。用记事本打开fontlist-v330.json,在 "ttflist"的[ ]中添加以下内容
{
"fname": "fonts\\ttf\\times_simsun.ttf",
"name": "Times New Roman + SimSun",
"style": "normal",
"variant": "normal",
"weight": 400,
"stretch": "normal",
"size": "scalable",
"__class__": "FontEntry"
},

5.重启python
6.在代码开头设置字体属性
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif' # 使用字体中的无衬线体
rcParams['font.sans-serif'] = ['times_simsun'] # 设置字体
rcParams['font.size'] = 9 # 设置字体大小
rcParams['axes.unicode_minus'] = False # 使坐标轴刻度标签正常显示正负号
rcParams['mathtext.fontset'] = 'stix' # 保证 mathtext 字体为 times
更多推荐
所有评论(0)