matplotlib画图不显示中文

写在前面:
  之前也尝试解决过,弄了好几次都不行,也就半途而废了,最近在打DataFountain上的比赛,数据比较多,用英文代替着实为难我,今天终于解决了~ 方格代替

一、 实验环境:
  python3.6 + pycharm/zsh
  pycharm和命令行环境下我都试了,无法显示中文,本质还是在matplotlib
二、具体步骤

  • 修改matplotlibrc文件
    matplotlib包默认只支持 ASCII 码,不支持 unicode 码,定位到当前环境下matplotlib的安装位置,手动修改配置文件(大概在196行。
    matplotlibrc
    修改font配置

  • 添加.ttf文件到font文件夹
    只是修改配置文件,起不了作用,因为缺少对应的字体,在中文字体库中找到对应SimHei.ttf安装到font目录下
    font/SimHei.ttf

  • 重载matplotlib
    前两步完成之后,在pycharm下再次运行程序并不能显示中文,需要重新加载matplotlib

    1
    2
    from matplotlib.font_manager import _rebuild
    _rebuild()

    现在不管是pandas.plot() 还是plt.plot()都可以显示中文了 (* ̄︶ ̄)
    可还行