Google Datalab绘图时字体警告的消除方法咨询
解决Google Datalab中Matplotlib字体警告的方法
我之前也碰到过这个问题!虽然图表能正常渲染,但每次弹警告确实挺烦人的,给你几个靠谱的解决办法:
方法一:直接指定默认字体
既然Matplotlib已经自动 fallback到DejaVu Sans了,我们直接把它设为默认的sans-serif字体,从根源上避免字体查找失败的警告。在调用绘图代码前加上这几行:
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['DejaVu Sans'] plt.rcParams['axes.unicode_minus'] = False # 顺带解决可能出现的负号显示异常问题
之后再执行df.plot(),警告就不会再出现了。
方法二:精准过滤特定警告
如果不想修改字体配置,也可以直接让Python忽略这条特定的UserWarning。用warnings模块做精准匹配:
import warnings # 用正则匹配警告内容,只忽略这一条 warnings.filterwarnings("ignore", category=UserWarning, message=r"findfont: Font family \['sans-serif'\] not found.*")
这样设置后,只有这条字体相关的警告会被屏蔽,其他有用的警告依然会正常显示。
方法三:(可选)安装缺失字体(不推荐)
如果你确实想用其他sans-serif字体(比如Arial),可以在Datalab环境中安装对应的字体包,但这个步骤没必要——毕竟fallback的字体已经能正常渲染图表了。如果一定要尝试,可执行以下命令安装基础字体包:
!apt-get install -y fonts-dejavu-core
安装后需要重启Matplotlib的字体管理器才能生效,相对麻烦,所以优先推荐前两种方法。
你收到的警告内容如下:
/usr/local/envs/py3env/lib/python3.5/site-packages/matplotlib/font_manager.py:1320: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans (prop.get_family(), self.defaultFamily[fontext]))
内容的提问来源于stack exchange,提问作者Nicky Feller
相关产品推荐
相关产品推荐

