matplotlib中文乱码问题

请参考:

Python: WIndows系统 findfont: Font family ['sans-serif'] not found解决方法

通常的报错信息是:findfont: Font family [‘sans-serif’] not found的错误

我也在最近重装系统后碰到了;原因第一是中文字体缺失,第二是python 模块配置问题。

如何解决呢?

1)此方法针对Simhei字体为例
我们可以百度搜索,将下载下来的字体解压出来。或者从这个网址直接下载FontZone

(2)将字体文件复制到对应文件夹

针对Spyder或jupyter notebook,我们可以输入以下命令,得到

import matplotlib
print(matplotlib.matplotlib_fname())

得到字体路径,并将解压出来的字体文件移动到字体路径中,一般是:D:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data\fonts\ttf

(3)设置matplotlib配置文件
清空缓冲目录里面的文件, 删除 ~/.cache/matplotlib的缓冲目录 (Windows内是 C:\Users\xxxxxx.matplotlib)
修改D:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data 里面的matplotlibrc文件,修改如下:

font.family : sans-serif
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus,将True改为False,作用就是解决负号'-'显示为方块的问题

然后重启一下Python内核就可以了,不用重启电脑。

重启python (jupyter notebook)

就是在CMD中重新加载jupter 就可以使用了。

你可能感兴趣的:(matplotlib中文乱码问题)