python matplotlib 图片显示中文

在Linux中使用matplotlib处理中文时遇到字体缺失的问题,可以通过从Windows复制字体库到Linux,执行mkfontscale、mkfontdir、fc-cache命令安装字体,然后在Python代码中指定字体如MicrosoftYaHei。如果遇到缓存问题,删除.matplotlib目录后重试可解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux 环境中,使用matplotlib 显示中文时,总是提示:

/python/stock.py:273: UserWarning: Glyph 33647 (\N{CJK UNIFIED IDEOGRAPH-836F}) missing from current font.
  fig.savefig(self.name + ".jpg", bbox_inches = 'tight')

检查了下, 是使用matplotlib 显示标题时使用了中文,而python中的matplotlib 找不到字体。

解决办法: 

1 从windows 系统中拷贝字体库到linux系统中。

windows 字体库在系统盘 Windows\Fonts目录中,可以选择自己想要使用的中文字体。我选择的是微软雅黑。

   

 注意,这里显示的不是文件,右键复制到另外一个目录中,会发现是三个文件。

 将这三个文件上传到linux目录中。

然后在此目录中执行如下命令

mkfontscale

mkfontdir

fc-cache

执行完毕后,可以使用fc-list | grep msyh 检查是否安装成功。

2. 在python程序中指定字体

安装字体后,还需要在python 的程序代码使用matplotlib时指定字体,要不然代码不知道该用啥。

import matplotlib

matplotlib.rc("font", family = "Microsoft YaHei”)

或者

matplotlib.rcParams['font.sans-serif']=['Microsoft YaHei']

两个选择一个就可以。

3. 经过的一个坑。

第一次按照上述配置完成后,执行时仍报相同的错误。

到linux系统用户的home中,./.cache/matplotlib目录中有一个json文件,查看这个文件没有找到安装的YaHei字体,但fc-list 命令看到字体是已经安装好的。

解决办法: 到.cache目录中,mv matplotlib matplotllib.bk 或者直接删除这个目录即可。

然后重新执行程序就OK了。

此时再次查看这个json文件,就能看到Yahei字体的信息了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值