Matplotlib 中文显示不出来怎么办?

Matplotlib绘制图像的时候显示中文时候,中文会变成小方格子。其实,Matplotlib是支持中文编码的,造成这个现象的原因是,matplotlib库的默认配置信息里面没有中文字体的相关信息。那需要中文显示该怎么办呢?

  • 解决方案:代码中指定中文字体

    plt.rcParams['font.sans-serif'] = ['SimHei']
    
  • 为什么添加了代码还是不能显示?
    请查看自己的Matplotlib中是否安装了代码中指定的字体。如果没有安装,可以更换为已安装的字体名称,或者自行安装这个制定字体。
    查看代码如下:

    from matplotlib.font_manager import fontManager
    import os
    
    ch_fonts = sorted([font.name for font in fontManager.ttflist if 
             os.path.exists(font.fname) and os.stat(font.fname).st_size>1e6])
    
    # 按顺序输出所有中文的字体
    for i in ch_fonts:
        print(i)
    
    # 判断FangSong字体是否存在,可以将FangSong更换为其他的中文字体类型
    # 结果返回True则表示已安装,否则为未安装
    font = 'FangSong'
    print(font in ch_fonts)
    
  • 如何自行安装某个字体?
    请查看自己的Matplotlib中是否安装了代码中指定的字体。如果没有安装,可以更换为已安装的字体名称,或者自行安装这个制定字体。
    第一步:查询Matplotlib所在文件夹的位置。并下载.ttf格式的中文字体,在该文件夹下找到mpl-data\fonts\ttf文件夹,并将字体文件放入其中。

    import matplotlib
    print(matplotlib.__file__)
    

    第二步:使用下面的代码,获取缓存文件夹, 删除该目录下的fontList.json文件, 并重新import matplotlib

    import matplotlib
    print(matplotlib.get_cachedir())
    

    第三步:重新检查字体是否安装成功。接下来,就可以正常使用这个字体啦~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。