Matplotlib不能显示中文和正负号的问题
matplitlib默认情况下是不支持中文字体的,要想在matplitlib中使用中文标签标题要进行相关的配置。![Matplotlib不能显示中文和正负号的问题WindowsUserWarning: findfont: Font family ['sans-serif', 'SimHei'] not found._第1张图片](http://img.e-com-net.com/image/info8/dfbc30a627d04f0f98f5dba68fb7cfa6.jpg)
方法一
1.下载相应的中文字体链接:https://pan.baidu.com/s/1Jb4-qWXPd-iDP4VnaIYhDQ 密码:ppse
这个网盘链接里面有整理好的许多字体样式,可以根据需求进行下载,选择要使用的字体样式
1.1这时在画图的程序中加入下面两行代码在画的图中就可以显示中文了,代码中要改为自己的路径名称,后面跟要使用的字体样式。
一般中文可以使用下载的文件下的 /font-master/unicode 的下面的SimHei.ttf
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"自己的路径名字/SimHei.ttf", size=15)
- 不过这种方法比较麻烦每次都要寻找添加路径名
- 可以试一下方法二一劳永逸
方法二
1.首先下载字体
2.查找自己的电脑中matplitlib的配置文件
import matplotlib
print(matplotlib.matplotlib_fname())
在IDLE中运行代码找出自己matplitlib的配置文件的路径
3.把要使用的字体文件(比如SimHei.ttf字体)放入/site-packages/matplotlib/mpl-data/fonts/ttf下面![Matplotlib不能显示中文和正负号的问题WindowsUserWarning: findfont: Font family ['sans-serif', 'SimHei'] not found._第2张图片](http://img.e-com-net.com/image/info8/89cd09bae0ff4428bc8df267d87739b6.jpg)
4.这时运行程序之后图中还不能显示中文是因为matplotlib还存在缓存,清除缓存后就能够正常运行了。
- (1) 在Linux下:删除文件夹/.cache/matplotlib/(/.cache/matplotlib/fontList.json文件没有保存新安装的字体)。如果不存在上述文件夹,则删除 ~/.cache/ipython(?本次运行成功)
- (2)在Windows下:删除C:\Users\dongfang.matplotlib文件夹
5.之后只要在要使用中文的图例中写入下面一句就可以完美的解决中文乱码问题了
# 用来正常显示中文标签,SimHei是字体名称,字体必须再系统中存在,字体的查看方式和安装第三部分
plt.rcParams['font.sans-serif']=['SimHei']
5.之后再运行程序就可以显示中文了
![Matplotlib不能显示中文和正负号的问题WindowsUserWarning: findfont: Font family ['sans-serif', 'SimHei'] not found._第3张图片](http://img.e-com-net.com/image/info8/acd53e9bc76b40af8f3f4ac314a6dc37.jpg)