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'] = 选择的字体