Matplotlib 发出警告消息因为findfont- python
最近在使用Matplotlib生成图表时,遇到了一个问题:Matplotlib总是给出以下警告消息:
UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans.
prop.set_family(family)
这种情况发生的原因是Matplotlib默认使用sans-serif字体,当该字体不存在于系统中时,使用备用字体DejaVu Sans。
阅读更多:Matplotlib 教程
了解字体配置
在Matplotlib中,字体配置很重要。您可以在配置文件中指定字体或使用rcParams来进行配置。
例如:
这里,我们将mpl.rcParams[‘font.family’]设置为serif。然后,我们在mpl.rcParams[‘font.serif’]中指定可用于serif字体的字体。类似地,我们在mpl.rcParams[‘font.sans-serif’]中指定sans-serif字体。所有这些字体都是从配置文件的“fontList.cache”中提取的。
解决字体配置问题
解决字体配置问题也很简单。只需按照以下步骤进行操作:
- 安装所需字体,例如,我们希望使用中文字体SimHei,则可以搜索并下载“SimHei.ttf”字体;
- 将字体文件放在某个目录下,并修改matplotlib配置文件matplotlibrc,可以在控制台输入以下命令查找配置文件路径:
将以下部分的注释取消:
修改为:
示例1
下面是一个使用SimHei字体的简单示例:
示例2
下面是另一个使用中文显示的示例,这里使用的是微软雅黑字体:
总结
Matplotlib是Python中最流行的图表库之一,也是数据可视化的首选库之一。然而,由于字体配置问题而导致的警告信息可能会引起不必要的困扰,因此对字体配置应该予以重视。使用以上方法,可以很好地解决字体配置问题。