【mac】matplotlib显示中文问题(两种方法)

您所在的位置:网站首页 mac怎么设置为中文系统 【mac】matplotlib显示中文问题(两种方法)

【mac】matplotlib显示中文问题(两种方法)

2024-07-10 20:28| 来源: 网络整理| 查看: 265

这里写图片描述 或许你曾经碰到过这样的情况

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

或许你添加了这两行代码还是没有效果,在你图表中的中文依旧是一个个小框框。 不要着急嘛,我们来把问题原因弄清楚,原因就是matplotlib库中压根就没有中文字体啊 在试过几种方法之后我发现一种及其简单的,分享给大家

超简便的方法 运行以下代码,它会将你所有的字体显示出来,注意打印出来的都是英文,你得自己分辨哪些是中文字体 from matplotlib import font_manager a = sorted([f.name for f in font_manager.fontManager.ttflist]) for i in a: print(i)

这是我的一部分字体,从中挑选自己需要的字体

Andale Mono Apple Braille Apple Braille Apple Braille Apple Braille Apple Braille Apple Chancery Apple LiGothic Apple LiSung Apple Symbols AppleGothic AppleMyungjo Arial Arial Arial Arial Arial Black Arial Narrow Arial Narrow Arial Narrow Arial Narrow Arial Rounded MT Bold Arial Unicode MS Ayuthaya BiauKai Big Caslon Bodoni 72 Smallcaps Bodoni Ornaments Bradley Hand Brush Script MT Chalkduster Comic Sans MS Comic Sans MS Courier New Courier New Courier New Courier New DIN Alternate DIN Condensed DejaVu Sans DejaVu Sans DejaVu Sans DejaVu Sans DejaVu Sans Display DejaVu Sans Mono DejaVu Sans Mono DejaVu Sans Mono DejaVu Sans Mono DejaVu Serif DejaVu Serif DejaVu Serif DejaVu Serif DejaVu Serif Display Diwan Thuluth 把你需要的字体放在=后面的中括号中,比如我放的就是黑体 plt.rcParams['font.sans-serif']=['STHeiti'] #用来正常显示中文标签

就开心的解决啦!

如果第一种方法,没成功,证明你matplotlib中没有中文字体,你需要手动添加,那么请进入方法二的流程吧~

确认matplotlib拥有的字体 import matplotlib.font_manager a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i) 找到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不重新加载的话,添加进去的字体还是没法显示) 脚本中修改字体 plt.rcParams['font.sans-serif'] = ['STFangsong'] plt.rcParams['axes.unicode_minus'] = False


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3