美文网首页深度学习程序员
Matplotlib 显示中文 for Mac

Matplotlib 显示中文 for Mac

作者: SpikeKing | 来源:发表于2018-03-31 17:57 被阅读127次

    欢迎Follow我的GitHub,关注我的简书

    在Matplotlib中, 无法显示中文, 需要修改配置文件.

    1. 检查中文字体

    在Focus Search (聚焦搜索)中, 搜索"font", 进入字体册, 选择合适的字体集.

    字体

    如"黑体-简", 右键在"Folder (访达)"中显示, 选择粗体(Medium), 获取路径.

    字体文件

    复制路径"option + command + c"

    /System/Library/Fonts/STHeiti Medium.ttc
    

    2. 修改Matplotlib配置

    查看matplotlib的配置路径:

    import matplotlib
    print matplotlib.matplotlib_fname() # 将会获得matplotlib包所在文件夹
    

    路径:

    /Users/xxxx/.matplotlib
    

    修改配置中的字体文件fontList.json. 在ttflist列表中, 添加"Heiti"的中文字体集.

      "ttflist": [
        {
          "style": "normal",
          "name": "Heiti",
          "weight": 400,
          "fname": "/System/Library/Fonts/STHeiti Medium.ttc",
          "stretch": "normal",
          "_class": "FontEntry",
          "variant": "normal",
          "size": "scalable"
        },
      ...
    

    查看matplotlib支持的字体集.

    import matplotlib  
    a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])  
      
    for i in a:  
        print i  
    

    "Heiti"字体集设置完成!

    3. 使用字体集

    设置font.family域为Heiti.

    plt.rcParams['font.family'] = ['Heiti']
    

    线图, 标签(label)和标题(title)使用中文, 注意unicode.

    t = np.arange(0.0, 2.0, 0.01)  # 值得范围 0.0~2.0
    s = 1 + np.sin(2 * np.pi * t)  # y = 1 + sin(2*Pi*x), 范围页是0~2
    
    fig, ax = plt.subplots()  # 图像fig和轴ax
    ax.plot(t, s)  # 设置x轴和y轴
    
    ax.set(xlabel=u'时间(秒)', ylabel=u'电压(mV)',
           title=u'线图')  # x轴文字, y轴文字, 标题
    ax.grid()  # 网格
    
    print tmp_wrapper("demo_1.png")
    fig.savefig(tmp_wrapper("demo_1.png"))  # 存储图片
    plt.show()  # 显示
    

    显示

    中文图

    完美显示, Perfect!!!

    相关文章

      网友评论

        本文标题:Matplotlib 显示中文 for Mac

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