matplotlib不支持中文和符号的解决办法
现象
中文乱码 和 - 负号显示为方块
报错类型
1 | Mac UserWarning: findfont: Font family ['SimHei'] not found |
产生原因:matplotlib: plotting with Python 默认不支持中文字符和符号,缺少 SimHei 字体.
解决方法
1、下载 SimHei 字体
1 | 地址:https://www.fontpalace.com/font-download/SimHei/ |
2、查找字体存在的目录
2.1 进入Python3环境
1 | ~: python3 |
2.2 import matplotlib库并打印路径
1 | Python 3.7.3 (default, Nov 15 2019, 04:04:52) |
复制路径 /Users/mk/Library/Python/3.7/lib/python/site-packages/matplotlib/mpl-data/matplotlibrc 到剪切板
2.3 获取字体存放路径
一般路径是:/Users/mk/Library/Python/3.7/lib/python/site-packages/matplotlib/mpl-data/fonts/ttf/
将下载好的字体 SimHei 复制到上面的路径
3、修改 matplotlibrc 配置文件
matplotlibrc 的路径就是2.2种获取的路径
3.1 打开 font.family
1 | ## The font.size property is the default font size for text, given in pts. |
3.2 打开 font.serif 和 font.sans-serif 并添加 SimHei
1 | ## small, medium, large, x-large, xx-large, larger, or smaller |
3.3 将 axes.unicode_minus 的值 True改成False
1 | #axes.spines.bottom : True |
4、删除缓存文件
删除 /Users/mk/.matplotlib 文件夹下的 fontlist-v310.json 和 tex.cache
5、重新运行python
备注:文中路径中 /mk/ 为笔者电脑用户名,请根据实际情况修改。