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