Python问题总结:关于matplotlib中文字体无法正常显示问题的总结

Python问题总结:关于matplotlib中文字体显示问题的总结

1 问题描述

在使用Matplotlib绘图时,如果我们使用中文,可能会出现如下情况

问题相关图片
这种情况的出现是因为matplotlib绘制图像的默认字体不支持中文,只要切换为中文字体即可

2 解决方法

2.1 网上提供的方法

网上提供的解决方法大多比较直接,如

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei' 

或者

import matplotlib
matplotlib.rc("font", family='SimHei')

即修改了字体为SimHei,当然也可以改成其它支持中文的字体。
这种方式确实是正确的方式,至少应用在Windows系统上是基本上没有什么问题的。
但是其他如同一些Linux系统可能并不包含这种字体,所以这种方法不能适用所有系统

2.2 补充方法

针对一些中文字体库并不足够丰富的系统,我们首先要了解系统中有哪些字体
可以在Python执行如下命令查看

import matplotlib
for i in matplotlib.font_manager.fontManager.ttflist:
	print(i.name)
# 这里的i是字体类,name是i的属性,即字体名称

此时再用列出字体中支持中文的字体再作为替换即可

2.3 对Linux系统的进一步补充

如果不知道哪些字体是支持中文的,除了可以网上搜索外,在Linux系统中还可以使用如下命令

fc-list #该命令用于列举系统中的字体
fc-list :lang=zh #该命令用于列举系统中支持中文的字体

第二个命令可以列举出支持中文的字体,可以用做替换
这样差不多就可以解决大部分的字体问题了
问题解决

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值