pd.plotting.register_matplotlib_converters() 的作用

pd.plotting.register_matplotlib_converters() 的作用?


在Kaggle中的可视化在线课程seaborn中,有这样一行代码:
pd.plotting.register_matplotlib_converters()


原代码内容为:

pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")

在kaggle进行练习时,一般不会输入那行代码,经常会出现如下warning:
F:\Ruanjian\Anaconda3\envs\Project_Bigdata\lib\site-packages\xgboost\compat.py:36: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead. from pandas import MultiIndex, Int64Index


通过查阅资料,在github中Bletham给出了如下答复:

"谢谢你提出这个问题。

进行此更改是为了避免在 pandas 0.24 周围引入的 FutureWarning。如果您使用 fbprophet 0.4 和 pd 0.24.2,那么当您在 Prophet 模型上调用 plot 时,您会得到

/usr/lib64/python2.7/site-packages/pandas/plotting/_converter.py:129: FutureWarning: Using an implicitly registered datetime converter for a matplotlib plotting method. The converter was registered by pandas on import. Future versions of pandas will require you to explicitly register matplotlib converters.

To register the converters:
    >>> from pandas.plotting import register_matplotlib_converters
    >>> register_matplotlib_converters()
  warnings.warn(msg, FutureWarning)

基本上发生的事情是,当您导入熊猫时,它会向 matplotlib 注册一堆函数,这些函数告诉 matplotlib 如何绘制熊猫类型。但是,它的作用不止于此——它实际上用 Pandas 处理程序覆盖了一些内置的 matplotlib 处理程序。特别是,matplotlib 具有绘制日期时间对象的内置功能。当导入熊猫时,它会用熊猫日期时间绘图覆盖 matplotlib 的内置日期时间绘图。

在 m.plot 中,我们首先将所有内容从 pandas 类型中转换出来,然后再将它们传递给 matplotlib,特别是因为我们不想使用 pandas 绘图。尽管如此,在 fbprophet v0.4 中,pandas 仍然被用于绘图,因为它覆盖了日期时间绘图。因此,尽管我们在绘图中没有使用熊猫类型,但绘图还是引发了 FutureWarning。

正如 FutureWarning 中所述,pandas 正在回溯行为,并且在未来将要求您注册转换器以便在 matplotlib 中绘制 pandas 类型。因此,我们决定取消注册它们,以获取现在的未来行为。

然而,不幸的是,它确实打破了您之前在帖子中描述的行为,但没有任何关于它为什么不起作用的信息。将来,随着越来越多的人升级到 pd 0.24.2 并开始看到 FutureWarning,他们将养成在尝试绘制 Pandas 类型之前注册转换器的习惯,但在那之前,这将是一个艰难的过渡。我主要责怪熊猫实施了这种不良行为,然后以不向后兼容的方式对其进行回溯,但也许我们可以做些什么来更好地处理这种转变。”


之前的问题得到了很好的解释。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bigdataxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值