实验楼Python 个人项目中数据分析前端展示的一个方案是前端请求时后端利用matplotlib
动态生成所需要的图片返回给前端, matplotlib
默认不支持中文字体显示,所以在遇到中文时无法显示。
导入中文字体文件就可以解决这个问题。首先定位matplotlib
的资源文件路径,通过如下语句
import matplotlib
print(matplotlib.matplotlib_fname())
输出结果
/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc
这个是matplotlib
加载的资源文件,字体文件存放在/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf
路径下,可以去这个地方下载字体(https://github.com/dolbydu/font),例如微团雅黑-Microsoft Yahei.ttf
,黑体-SimHei.ttf
, 楷体-STKaiti.TTF
等,将下载的字体文件存放到ttf路径下
然后修改matplotlibrc
文件,搜索font.family
font.family : sans-serif
这行的注释去掉
font.sans-serif :STKaiti, SimHei, Microsoft YaHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
这行的注释去掉,并在后面值的前面增加添加的中文字体文件,现在matplotlib
默认的sans-serif font-family
会优先选用楷体显示字体,这样就可以显示中文
最后需要删除matplotlib
的生成的缓存文件
rm -rf ~/.cache/matplotlib
这样就可以进行中文字体的显示了。