美文网首页
matplotlib的中文设置

matplotlib的中文设置

作者: grey_27 | 来源:发表于2018-11-10 15:10 被阅读16次

    在matplotlib中绘制图表时中文不能正确显示,这是因为matplotlib的默认设置中没有支持中文,只需要对设置进行一定更改就可以了

    • 解决方法
    import matplotlib as mpl
    mpl.rcParams['font.sans-serif'] = ['SimHei']   #设置简黑字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
    

    如果你不嫌麻烦那么每次在用matplotlib作图前加上这两句就可以了(仅限windows用户) 但我们可以对配置文件下手彻底解决这个问题


    在此之前先说一下为什么linux系统执行这两条语句之后并没有效果,原因是在linux的字体中没有simhei.ttf这个文件格式,所以把并不能成功显示中文字体,这时我们也只能对配置文件进行更改才能解决

    准备好字体文件(windows不需要)

    git clone https://github.com/tracyone/program_font && cd program_font && ./install.sh
    安装的字体文件一般在/usr/share/fonts/MyFonts/目录下

    找到配置文件的地址

    In [2]: mpl.matplotlib_fname()
    Out[2]: '/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc'
    

    这返回的是一个文件的路径,他的目录路径即/mpl-data/,先将字体文件复制到mpl-data/fonts/ttf
    然后返回再对matplotlibrc这个文件进行修改

    # 找到font.family配置项,去掉注释,将值改为对应的字体名字。
    font.family         : SimHei
    
    # 找到axes.unicode_minus配置项,去掉注释,将值改为False解决‘-’的问题
    axes.unicode_minus  : False
    

    删除缓存文件,使更改生效(windows不需要这步)

    缓存文件路径~/.cache/matplotlib直接整个文件夹删除即可
    rm ~/.cache/matplotlib -R


    之后任意使用matplotlib制图中文都可以正常显示了,windows下只需要修改配置文件就可以了

    相关文章

      网友评论

          本文标题:matplotlib的中文设置

          本文链接:https://www.haomeiwen.com/subject/ljmzxqtx.html