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

在Ubuntu 14.04系统中,使用Python 2.7时遇到matplotlib无法显示中文的问题。解决方法包括:1) 复制SIMHEI.TTF字体到系统和matplotlib字体目录;2) 修改matplotlibrc配置文件设置font.family和font.sans-serif;3) 删除缓存文件fontList.cache;4) 在代码中设置字体。完成以上步骤后,matplotlib能正常显示中文和负号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决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 #用来正常显示负号

  • 最后就可以啦,放上一张测试的图哈
    这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值