MAC Matplotlib 画图中文乱码处理

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

    因为刚换的mac,还不是很适应,用matplotlib画图的时候发现中文乱码显示为方框,查阅了一些大神的方法,目前我使用的是在脚本中添加代码的方式,其他永久修改../matplotlib/mpl-data/matplotlibrc的请参阅各位大神的方式。下面给出我自己使用的方法。

    一、确认matplotlib拥有的字体

  

import matplotlib.font_manager

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

for i in a:
    print(i)

    输入如下代码可以查看matplotlib已加载的字体

    二、找到mac已有的字体

    网上教程关于matplotlib画图中文乱码修改很多都是windows版本的,一般都是提示下载Simhei字体,后来发现mac自身也有挺多中文字体,毕竟乔帮主对于文字美学很执着,可以通过如下方式找到导出mac自带中文字体。

    启动台--->字体册--->中文--->导出字体

    也可以直接进入font文件夹找到字体,但通过字体册导出感觉更简单点,字体册查看字体也更方便点

    三、将字体复制到../matplotlib/mpl-data/fonts/tff 文件夹中,我看网上有大神说必须是tff格式的字体matplotlib才能识别,因为我导出的是华文仿宋,默认是tff格式,也不确定ttc的是否能直接用,如果有问题的话需要去转下格式。

    四、重新加载matplotlib的字体库

    

from matplotlib.font_manager import _rebuild

_rebuild()

    接着用第一步的代码能够看见新加入matplotlib的字体了,我用的是华文仿宋,显示英文为STFangsong(这一步很重要!,否则matplotlib不重新加载的话,添加进去的字体还是没法显示)

    五、脚本中修改matplotlib字体

    

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['STFangsong']
plt.rcParams['axes.unicode_minus'] = False
    这样就可以正确显示中文标签了
展开阅读全文

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