天天看点

解决mac下jupyter中matplotlib中文无法显示的问题

换了笔记本之后在jupyter中用matplotlib画图一直无法愉快的显示中文,在网上苦苦查阅了许久,网上主流的方法有两种:一种是下载SimHei,将字体包放到matlotlib相关文件夹下并修改配置文件,另一种是每次画图都调用函数指定中文字体(在此不再对此两种方法的实体实现方式进行赘述)。第二种稍显笨重的方法自然无法让人心悦诚服地使用,而第一种方法我却屡试皆爽,不禁感到疑惑,别人是如何用这种方法操作成功的?

直到看到了某位老哥的一篇博客,我才豁然开朗:既然SimHei字体在Mac下无法奏效,那我为何不选用一种Mac支持的中文字体,为何非要费这么大功夫跟SimHei置气?于是我选用了另一种简单有效令人身心愉悦的方法——换字体。我放弃了使用SimHei,选择Arial Unicode MS作为matplotlib的中文字体。

一次性方法:

永久方法:

与主流方法一的原理相同:

  1. 找到字体路径
import matplotlib
print(matplotlib.matplotlib_fname())
           

我的路径:/Users/pengtiantian/opt/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

2. matplotlibrc正是需要修改的文件

cd /Users/pengtiantian/opt/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data
vim matplotlibrc
           

找到font.family与font.sans-serif(默认被注释掉了),修改为

font.family: sans-serif
font.sans-serif: Arial Unicode MS, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
           

再找到后面的axes.unicode_minus,将True改为False(此项False,则matplotlib不会用中文字体显示负号“-”)

axes.unicode_minus: False
           
  1. 接下来,删除缓存文件:
rm -rf ~/.matplotlib/*
           
  1. 最后,重启jupyter内核,即可享用中文matloplib服务😊

    显示效果如下图:

    解决mac下jupyter中matplotlib中文无法显示的问题

各位看官请笑纳=w=

给自己看的小记

陷入某一死胡同中时,转换思维未尝不是一种快速解决问题的良方。

PS:有帮助记得点个赞哦,谢谢(〃‘▽’〃)

继续阅读