解决matplotlib不能显示中文的问题(Ubuntu)

解决matplotlib不能显示中文的问题(Ubuntu)

  • 环境

    • 系统:Ubuntu 14.04
    • Python版本:2.7
  • 解决办法

    • 第一步,下载中文字体:SIMHEI.TTF。
      我是直接在windows下复制到Ubuntu中的,在计算机中搜索simhei即可找到。需要放到两个地方:
      1)放到系统文件夹下:
      /usr/share/fonts
      2) 放到matplotlib的字体文件夹下:
      /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/fonts/ttf/
    • 第二步,修改配置文件。
      找到配置文件位置:

      import matplotlib
      print matplotlib.matplotlib_fname()

      我的配置文件在etc/matplotlibrc
      然后打开修改,

      sudo vi matplotlibrc

      找到font.family和font.sans-serif两项,将#注释去掉,并改为如下。

      font-family : sans-serif
      font.sans-serif : SIMHEI

    • 第三步,删除缓存文件(这一步很关键)。
      找到fontList.cache文件

      sudo find / -name fontList.cache

      假设我的在/home/user/.cache/matplotlib/fontList.cache,删除:

      rm /home/user/.cache/matplotlib/fontList.cache

      PS: 不删除缓存文件,最后还是不能显示中文。

    • 第四步,画图代码部分

      import matplotlib as mpl
      font_name = ‘SIMHEI’
      mpl.rcParams[‘font.family’] = font_name #用来正常显示中文标签
      mpl.rcParams[‘axes.unicode_minus’]=False #用来正常显示负号

  • 最后就可以啦,放上一张测试的图哈
    解决matplotlib不能显示中文的问题(Ubuntu)