一次性解决MacOS Matplotlib中文问题,Windows和Linux应该也适用

Matplotlib作图的时候经常遇到中文显示的问题, 困扰了好久, 这次一次性解决了。
一般来说系统中都有中文字体, 但是Matplotlib识别不到。
原因其实是Matplotlib里面字体名称跟实际中文名称不匹配, 查询到Matplotlib里面这些中文字体实际是什么名字就可以了。

网上现有的教程都是针对Windows系统的, 所以同样的方法在MacOS中不起作用。

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

我们要做的就是查询一下当前系统有哪些字体:

# 查询当前系统所有字体
from matplotlib.font_manager import FontManager
import subprocess

mpl_fonts = set(f.name for f in FontManager().ttflist)

print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

输出:

all font list get from matplotlib.font_manager:
	Al Tarikh
	Alfa Slab One
	Alibaba PuHuiTi
	Alibaba PuHuiTi 2.0
	Alibaba Sans
	Allan
	...
	xiaowei
	zcool-gdh
	zcoolqingkehuangyouti
	zcoolwenyiti

这里面Alibaba这几个字体挺眼熟的,还有后面几个zcool的站酷字体
我们要做的,就是把正确的字体名称替换上去就行了。

plt.rcParams['font.sans-serif'] = ['Alibaba PuHuiTi 2.0']
plt.rcParams['axes.unicode_minus'] = False

测试一下

plt.plot(label='Training Accuracy')
plt.title('壹只忧郁的中国台湾乌龟', fontsize=24,fontweight='bold')

在这里插入图片描述

再试试繁体

plt.plot(label='Training Accuracy')
plt.title('一隻憂鬱的中國臺灣烏龜', fontsize=24,fontweight='light',backgroundcolor='#3c7f99',color='white')

在这里插入图片描述

搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值