Mac系统下matplotlib的中文显示问题解决

在mac上使用matplotlib绘图的时候之前总是不能输出中文,这是一个很简单的小bug,通过搜索教程找到一个稍微简单的解决方法如下:

1. 添加SimHei字体(simhei.ttf文件)

首先我们在python中运行以下命令来查看你的matplotlib所在位置:

matplotlib.matplotlib_fname()

$$$ a_t $$$

参考上述的输出结果,进入存储字体的目录

 cd [你自己的一些目录]/py2.7/lib/python2.7/site-packages/matplotlib/mpl-data/fonts

从网上下载SimHei字体,将simhei.ttf存储入上面的这个fonts目录中,最好重命名为 SimiHei.ttf

2. 删除~/.matplotlib/下的所有缓存文件

rm -rf ~/.matplotlib/*.cache

3. 在代码中声明使用simhei字体

开始这一步的时候,最好先重启一下你的jupyter
在你要画图的的Python文件中,添加

plt.rcParams['font.sans-serif'] = ['SimHei']  

以下是一个例子

import numpy as np

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
plt.rcParams['font.sans-serif'] = ['SimHei']

from __future__ import division
def logit(x):
    return 1/(1+np.exp(-x))

z = np.linspace(-5,5,200)
plt.plot([-5,5],[0,0],'k-')
plt.plot([-5,5],[1,1],'k--')
plt.plot([0,0],[-2,1.2],'k-')
plt.plot([-5,5],[-3/4, 7/4], 'g--')
plt.plot(z, logit(z), 'b-', linewidth=2)
props = dict(facecolor='black', shrink=0.1)
plt.annotate('Saturating', xytext=(3.5, 0.7), xy=(5,1), arrowprops=props, fontsize=14, ha='center')
plt.annotate('Linear', xytext=(2, 0.2), xy=(0,0.5), arrowprops=props, fontsize=14, ha='center')
plt.annotate('Saturating', xytext=(-3.5, 0.7), xy=(-5,0), arrowprops=props, fontsize=14, ha='center')
plt.grid(True)
plt.title(u'我就是我') # 注意以u开头
plt.axis([-5, 5, -0.2, 1.2])
Mac系统下matplotlib的中文显示问题解决_第1张图片
image.png

5. 参考资料

  • 知乎
  • Hands-on Machine Learning with Scikit-Learn and TensorFlow

你可能感兴趣的:(Mac系统下matplotlib的中文显示问题解决)