今天在jupyter用matplotlib库画图时,发现所有的中文全部变成方框了,如下图所示。然后百度,谷歌查了很多方法均不行,最后无意间寻得方法,记录下来。

一、网上常见方法汇总:
1、在开头加入以下设置即可解决(我尝试后无效):
%matplotlib inline
plt.rcParams['figure.figsize'] = (12.0, 8.0) # 调整大小,可根据自实际情况进行设置
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'
plt.rcParams['font.sans-serif']=['SimHei'] # 下面这两个是设置乱码的
plt.rcParams['axes.unicode_minus']=False
plt.style.use('ggplot') # 使用'ggplot'风格美化显示的图表
2、加入后面两句,这里的SimHei指的是黑体(我尝试后无效):
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
3、在代码开始处加上以下两句,这里的SimHei指的是黑体我尝试后无效):
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
二、尝试成功的方法:
以简体黑字体(SimHei)为例:
1、在这里下载相关字体,或者可以通过mac自带的字体册找到相关字体(启动台—>字体册—>点击相应字体—>在访达中显示),最好是使用tff格式的,其他格式的字体文件未尝试过;
2、将准备好的SimHei.tff拷贝到/Users/xxx/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/ 文件夹中;
3、重新加载matplotlib的字体库;
from matplotlib.font_manager import _rebuild
_rebuild()
4、确认matplotlib是否已经拥有你新加的字体,输入如下代码可以查看matplotlib已加载的字体;
import matplotlib.font_manager
a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in a:
print(i)
5、最后在你需要用的地方加载matplotlib字体。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
成功!!!