Matplotlib 显示中文 for Mac

欢迎Follow我的GitHub,关注我的

在Matplotlib中, 无法显示中文, 需要修改配置文件.

1. 检查中文字体

在Focus Search (聚焦搜索)中, 搜索"font", 进入字体册, 选择合适的字体集.

字体

如"黑体-简", 右键在"Folder (访达)"中显示, 选择粗体(Medium), 获取路径.

字体文件

复制路径"option + command + c"

/System/Library/Fonts/STHeiti Medium.ttc

2. 修改Matplotlib配置

查看matplotlib的配置路径:

import matplotlib
print matplotlib.matplotlib_fname() # 将会获得matplotlib包所在文件夹

路径:

/Users/xxxx/.matplotlib

修改配置中的字体文件fontList.json. 在ttflist列表中, 添加"Heiti"的中文字体集.

  "ttflist": [
    {
      "style": "normal",
      "name": "Heiti",
      "weight": 400,
      "fname": "/System/Library/Fonts/STHeiti Medium.ttc",
      "stretch": "normal",
      "_class": "FontEntry",
      "variant": "normal",
      "size": "scalable"
    },
  ...

查看matplotlib支持的字体集.

import matplotlib  
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])  
  
for i in a:  
    print i  

"Heiti"字体集设置完成!

3. 使用字体集

设置font.family域为Heiti.

plt.rcParams['font.family'] = ['Heiti']

线图, 标签(label)和标题(title)使用中文, 注意unicode.

t = np.arange(0.0, 2.0, 0.01)  # 值得范围 0.0~2.0
s = 1 + np.sin(2 * np.pi * t)  # y = 1 + sin(2*Pi*x), 范围页是0~2

fig, ax = plt.subplots()  # 图像fig和轴ax
ax.plot(t, s)  # 设置x轴和y轴

ax.set(xlabel=u'时间(秒)', ylabel=u'电压(mV)',
       title=u'线图')  # x轴文字, y轴文字, 标题
ax.grid()  # 网格

print tmp_wrapper("demo_1.png")
fig.savefig(tmp_wrapper("demo_1.png"))  # 存储图片
plt.show()  # 显示

显示

中文图

完美显示, Perfect!!!

你可能感兴趣的:(Matplotlib 显示中文 for Mac)