参考链接:https://www.zhihu.com/question/25404709(如有侵权,请联系我,立马删除)
考虑到anaconda可以正常输出中文字符,但是使用matplotlib画图时,图例和坐标轴就是会出现乱码,猜测是matplotlib设置的问题。
一.使用的硬件和软件版本
电脑系统:Win10
软件:anaconda 3.5.1
python:3.6
二.找到matplotlib设置字体文件的目录
在Anaconda Prompt上输入以下三行指令
python
import matplotlib
matplotlib.matplotlib_fname()
得到:D:\\anaconda\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc(在实际过程中,我是在其他目录下也找到了这个文件,路径为D:\anaconda\pkgs\matplotlib-2.1.2-py36h016c42a_0\Lib\site-packages\matplotlib\mpl-data\matplotlibrc)
三.修改matplotlibrc文件
使用notepad++打开文件,在199行,先把该行注释去掉,然后在将font.family 设置SimHei,如下图所示,改完记得保存。
运行画图程序,出现 UserWarning: findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans,依然是中文乱码。于是在该路径下D:\anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\ttf,查找SimHei,发现并没有这一款字体,google搜索,下载地址为http://www.xiazaiziti.com/210356.html,再将下载好的字体放到ttf目录下。
四.效果展示
这个时候要记得先将spyder关闭,然后重新打开,配置文件的变量生效,亲测有效。