在网上看的方法是sns.set(font=‘SiHei’, font_scale=1.3, style=‘whitegrid’),其中SiHei是字体名称,结果报错:findfont: Font family [‘SiHei’] not found. Falling back to DejaVu Sans.

意思是说本地找不到SiHei的字体库,网上给出的下载SiHei修改配置文件的方法对我不起作用,于是采用了直接使用本地字体的方法:
import matplotlib
matplotlib.get_cachedir()
得到matplotlib缓存文件的地址,打开该目录,其中有两个文件:

打开fontlist-v310.json,可以看到其中是对各个字体的描述,其中有些具有绝对路径,例如Arial:

进入目录/System/Library/Fonts/Supplemental,可以看到里面已经有中文字体Arial Unicode:

识别不出来是因为缓存json文件中没有该字体的说明,简单粗暴的方法,直接复制Arial的json,改名为Arial Unicode,地址修改为Arial Unicode

当使用seaborn时遇到中文乱码问题,尝试设置font为'SiHei'未果,因为系统缺少相应字体。通过查看matplotlib缓存文件fontlist-v310.json,发现Arial Unicode字体。将Arial的JSON信息复制并改名为Arial Unicode,更新其地址,并在seaborn中设置font='Arial Unicode',成功解决seaborn中文乱码问题。

1958

被折叠的 条评论
为什么被折叠?



