Mac下的matploylib绘图中文乱码问题

最近在接触一些在notebook上用matploylib这个库绘图时出现了中文乱码的问题,就是常见的那种小方块式的中文乱码问题。

下面简单说说解决方法。

Mac本机上的字体册利用

在打开Mac自带的字体册,可发现有许多的中文字体供我们选择使用,在此就能帮忙我们解决中文乱码的问题。

选择一个字体,找到他的文件位置在何处。之后需要添加的代码要用到。

这样就知道了位置的所在。

需要添加的代码

如下添加代码,加上上面说的中文字体的所在位置,然后在每一次需要中文显示时,均要加上fontproperties=font(font即指下方的变量)。

1
2
3
4
5
6
7
8
9
10
11
12
13
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/Library/Fonts/Songti.ttc')
> 如:
plt.subplot2grid((2,3),(1,0),colspan=2) #在此即为多行的占用
data_train.Age[data_train.Pclass == 1].plot(kind='kde') #两者的结合绘图
data_train.Age[data_train.Pclass == 2].plot(kind='kde')
data_train.Age[data_train.Pclass == 3].plot(kind='kde')
plt.xlabel('年龄',fontproperties=font)
plt.ylabel('密度',fontproperties=font)
plt.title('各等级的乘客年龄分布',fontproperties=font)
plt.legend(('Pclass1','Pclass2','Pclass3'),loc='best') #多个说明,自动排好说明位置

这样中文乱码的问题就能得到完美的解决了…唉,网上的一些方案根本没有用啊,折腾了几个小时,心累..

---------------本文终---------------

文章作者:刘俊

最后更新:2019年01月02日 - 14:01

许可协议: 转载请保留原文链接及作者。