MacOS Matplotlib中文显示乱码/方块解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Newbie_J/article/details/82821411

MacOS Matplotlib中文显示乱码/方块解决方法

【版本:python3.6】

  1. 首先进入
    /Users/jc/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/Users/jc/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf
    目录下查看是否有汉字字体,如SimHei.ttf,若无,则先将字体下载并放入上述目录下,下载链接如下:
    http://www.fontpalace.com/font-download/SimHei/

【注】我是用的anaconda,所以ttf路径如上,若不用anaconda,则将字体下载到:
你的python对应的:site-packages\matplotlib\mpl-data\fonts/ttf即可。

  1. 修改matplotlibrc配置文件:
    进入上述路径中的mpl-data文件夹,找到matplotlibrc文件并做如下修改
    #font.family :sans-serif
    #font.sans-serif : SimHei, DejaVu Serif……(将SimHei加到最前面)
    #axes.unicode_minus,将True改为False (这里是关于负号显示的)

  2. 清空缓存
    一定要清空matlibplot加载字体的缓存,否则加载时必然会报找不到字体的错,
    如:
    UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))

    删除方法:
    首先,进入对应文件夹:cd ~/.matplotlib/
    然后删除该文件夹下的Fontlist.json文件,如果你的文件夹下还有fontlist-v300.json文件,也必须要删除。否则无效

  3. 修改代码
    在你的python代码中添加如下:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']     # 引入加载字体名
plt.rcParams['axes.unicode_minus'] = False         # 解决保存图像是负号'-'显示为方块的问题
  1. 重启python
展开阅读全文

没有更多推荐了,返回首页