我们使用了如下代码,为了在图表上绘制中文
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
图表最后出现了这种方框形式的错误。
并报了如下错误
findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans.
这种报错,实际是一种警告,并不影响程序的正常运行,所以最后也能出效果图,但无法正常显示中文。其实就是matplotlib 库内没有 SimHei 字体,所以需要下载相关文件。
下载地址:SimHei.ttf|字体下载 (xiazaiziti.com)
首先找到font所在位置
import matplotlib
print(matplotlib.matplotlib_fname())
进入刚刚查找到的这个路径mpl-data文件下,找到 fonts->ttf,将下载的SimHei.ttf字体拷贝到此处。
拷贝成功如下
import matplotlib
print(matplotlib.get_cachedir())
进入到该文件夹下,删除缓存文件
rm -rf /home/robot/.cache/matplotlib/*
后面会自动生成缓存文件,此处已经优雅解决
回到步骤2的开头处,找到matplotlibrc路径,修改 matplotlibrc
font.family : sans-serif
# 去掉前面的#
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,并将True改为False
总算显示中文了!!!