matplotlib 设置中文字体

Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决。

方法一:使用思源黑体,思源黑体是 Adobe 与 Google 推出的一款开源字体

官网:https://source.typekit.com/source-han-serif/cn/
GitHub 地址:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese,打开链接后,在里面选一个就好了
百度网盘: https://pan.baidu.com/s/14cRhgYvvYotVIFkRVd71fQ 提取码: e15r。

可以下载个 OTF 字体,比如 SourceHanSansSC-Bold.otf,将该文件文件放在当前执行的代码文件中:

将 SourceHanSansSC-Bold.otf 文件放在当前执行的代码文件中:

import numpy as np 
from matplotlib import pyplot as plt 
import matplotlib
 
# fname 为 你下载的字体库路径,注意 SourceHanSansSC-Bold.otf 字体的路径
zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("菜鸟教程 - 测试", fontproperties=zhfont1) 
 
# fontproperties 设置中文显示,fontsize 设置字体大小
plt.xlabel("x 轴", fontproperties=zhfont1)
plt.ylabel("y 轴", fontproperties=zhfont1)
plt.plot(x,y) 
plt.savefig('matplotlib.china.png')
#plt.show()

 

方法二:用font_manager 内部的中文字体

1)先确认已有的字体

from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])

for i in a:
    print(i)

再打印的字体中找到表示中文的字体,通过rcParams来设置

plt.rcParams['font.family'] = 选择的字体

 

 

 

参考 https://www.runoob.com/numpy/numpy-matplotlib.html

 

posted on 2022-01-18 09:37  闹不机米  阅读(391)  评论(0编辑  收藏  举报

导航