关于Matplotlib作图时中文字体无法显示问题

项目场景:

通过Matplotlib作图时,遇到图表标签、标题中文字体显示不出来的问题。


问题描述

在使用Matplotlib作图时,设定字体为SimHei,但运行提示没发现这个字体,返回用DejaVu Sans来显示。DejaVu Sans字体无法显示中文。

import matplotlib.pyplot as plt

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

原因分析:

提示:一开始以为是系统字体问题,系统安装了字体后还是没解决。经查看是Matplotlib里没相关的中文字体。

一开始根据提示系统无该字体,就安装该字体。

我使用的是云服务器,安装了文泉驿黑字体,并将Matplotlib作图font.family设置为文泉驿黑。

但运行后中文字体还是显示不出来。

随后运行以下Python代码查看Matplotlib有哪些字体。

import matplotlib.pyplot as plt
from matplotlib import font_manager
 
for font in font_manager.fontManager.ttflist:
    print(font.name, '-', font.fname)

经查看系统中已安装的文泉驿黑字体不在列表里面。

故障问题可能是由于Matplotlib没有相关的中文字体,因而在使用过程中无法显示中文。


解决方案:

提示:通过同步重建解决问题。或者通过引入字体属性模块font_manager。

一、通过系统中字体同步到Matplotlib

目前是系统中有中文字体,但是Matplotlib中没有相关中文字体,只需要把系统中的中文字体同步到Matplotlib即可。

运行以下Python代码进行同步。

from matplotlib.font_manager import _rebuild

_rebuild()

再来Matplotlib作图时中文字体显示出来了。

该方法只适用于matplotlib是3+以下版本,因为3+及以上版本弃用_rebuild了。

二、通过使用字体属性模块

引入字体属性模块。

from matplotlib.font_manager import FontProperties

字体配置路径。

font = FontProperties(fname='/usr/share/fonts/truetype/arphic/wenquanyihei.ttc')

使用的话例如给图标标题设置标签。

ax.set_title("平方数",fontproperties=font)
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值