Manjaro下解决Matplotlib中文显示出错

当我在Manjaro中使用Matplotlib作图时候,会发现中文的图例变成了小方块,现在记录一下解决方法。

  • 将windwos中fonts目录下的simhei.ttf拷贝到/…/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf(文件路径根据实际情况修改)目录中,

  • 删除~/.cache/matplotlib的缓冲目录

  • 在代码中动态设置参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #coding:utf-8  
    import matplotlib
    matplotlib.use('qt4agg')
    #指定默认字体
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['font.family']='sans-serif'
    #解决负号'-'显示为方块的问题
    matplotlib.rcParams['axes.unicode_minus'] = False
    plt.plot([-1,2,-5,3])
    plt.title(u'中文',fontproperties=myfont)
    plt.show()

评论