运行环境: Linux
python 使用 matplotlib画图时,window环境下运行正常,linux中报错,报错截图如下
代码中为防止中文乱码使用了如下代码规定字体
import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号
而window中自带该字体,自带字体列表如下
具体解决方法
1. 在所需系统中python环境下,输入以下代码查看字体路径
import matplotlib
print(matplotlib.matplotlib_fname())
结果如下
2. 下载所需要的字体 SimHei
这里是我下载好的字体资源压缩包
3. 查看matplotlib的缓冲目录( 在终端python环境下,输入以下命令,获取缓冲目录)
import matplotlib
matplotlib.get_cachedir()
结果如下
4. 删除matplotlib的缓冲目录(rm -rf 上面python环境中查询到的缓冲地址)
5. 修改matplotlibrc文件(文件路径就是第一步中查到的字体路径,可以vim 编辑文件后使用 /search_content搜索,search_content即为需要查找的内容 )
font.family : sans-serif
# 去掉前面的#
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
# 去掉前面的#,并在冒号后面添加SimHei
axes.unicode_minus : False
# 去掉前面的#,并将True改为False
操作完之后再重新运行python脚本就没问题了