matplotlib 绘图中文乱码
下载中文字体并放到指定目录中
下载地址
查看自己所用matplotlib库所在路径,把字体文件放入相应的字体文件夹中
import matplotlib
print(matplotlib.matplotlib_fname())
在/home/xt/anaconda3/envs/dip/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf目录中,字体放在这个目录中还需要修改配置文件,这个文件就是matplotlibrc
matplotlibrc 在mpl-data路径下面,粘贴下列到配置文件
font.family : sans-serif
font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus : False #解决负号’-'显示为方块的问题
运行的代码里面加入
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus'] = False
再去把系统的缓存清理掉,这个缓存文件夹在ubuntu里面是不可见的,但是可用终端进去
缓存文件在/home/用户名
在这个路径下cd 到缓存文件夹
windows用户应该在user文件夹中,.matplotlib
cd .cache/matplotlib
然后删除该文件夹下的文件
sudo rm -rf 文件名
然后跑代码,如果不行,试试下面的
修改font_manager.py
/home/xt/anaconda3/envs/dip/lib/python3.6/site-packages/matplotlib/ 下可以找到这个
具体修改操作是:打开文件后,直接找 self.defaultFamily,进行修改为我们的 SimHei 文件,注意那个 afm 要保留,它是另一种字体文件。
将文件中的DejaVu Sans修改成SimHei:
还需要找到配置文件中找到DejaVuSans.ttf并将其修改为SimHei.ttf:
参考博客:https://blog.csdn.net/yl4548/article/details/107232170/