一、常规解决方法
Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦,具体代码如下:
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要更改axes.unicode_minus参数:
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
一般的绘图上述方案均能解决,但是我在ubuntu系统下面发现没能解决
二、ubuntu系统中解决
1. 下载字体simhei.ttf和simkai.ttf
链接:百度云
提取码:i3pe
2. 将字体上传到服务器,上传位置“/home/Downloads/fonts/”
服务器的话可以用FileZilla上传文件(可参考我之前的博客远程GPU服务器运行Python_Dr.sky_的博客-CSDN博客_远程服务器跑python),本地的话可以直接拷贝到指定文件夹
3. 将字体文件复制到指定文件夹, "/usr/share/fonts/truetype/noto/", 别的路径可能无效
cd /home/Downloads/fonts
sudo cp -i simhei.ttf /usr/share/fonts/truetype/noto/
sudo cp -i simkai.ttf /usr/share/fonts/truetype/noto/
4. 删除字体路径缓存(当运行新程序时会重新生成)
cd /home/hao/.cache
rm -rf matplotlib
5. 在脚本中添加以下代码,然后运行程序
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #或者把"SimHei"换为"KaiTi"
matplotlib.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
最后重启程序绘图即可显示中文字体