首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pd.plotting.register_matplotlib_converters()在Pandas中的用途是什么?

pd.plotting.register_matplotlib_converters()在Pandas中的用途是什么?
EN

Stack Overflow用户
提问于 2020-04-26 15:22:39
回答 2查看 7.6K关注 0票数 8

在学习有关可视化数据的在线课程时,我遇到了这一行代码。

代码语言:javascript
复制
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns

有谁能告诉我

代码语言:javascript
复制
pd.plotting.register_matplotlib_converters()

我提到了正式文件,但没有给出明确的解释。文档

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-26 15:25:17

我在文档里发现了这个

此函数修改全局matplotlib.units.registry字典。熊猫添加自定义转换器

  • pd.Timestamp
  • pd.Period
  • np.datetime64 ..。

因此,我猜它可以确保pandas数据类型(如pd.Timestamp )可以在matplotlib图中使用,而不必将它们转换为另一种类型。

票数 6
EN

Stack Overflow用户

发布于 2020-04-27 15:44:09

不久前,我在GitHub上找到了Bletham的以下回复。https://github.com/facebook/prophet/issues/999

“谢谢你提出这个问题。

做出这一改变是为了避免在熊猫周围引入FutureWarning。如果您使用pd 0.24.2的fb先知0.4,那么当您调用Prophet模型上的绘图时,您将得到

代码语言:javascript
复制
/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如何绘制大熊猫的类型。但是,它不仅仅是用熊猫处理程序覆盖了一些内置的matplotlib处理程序。特别是matplotlib内置了绘制日期时间对象的能力。当熊猫被导入时,它覆盖matplotlib的内置日期绘制和熊猫日期时间绘制。

在m.plot内部,我们首先转换出熊猫类型的所有内容,然后将它们传递给matplotlib,特别是因为我们不想使用熊猫。尽管如此,在“预言家”第0.4版中,熊猫仍然被用来作图,因为它超过了日期绘制的时间。因此,绘图提高了FutureWarning,尽管我们没有使用熊猫类型的绘图。

正如在FutureWarning中提到的,熊猫正在回溯这种行为,在未来需要你注册转换器,这样才能在matplotlib中绘制出熊猫的类型。因此,我们决定取消他们的注册,以获得未来的行为现在。

然而,不幸的是,它确实破坏了您之前在文章中描述的行为,而没有任何信息说明它为什么不能工作。未来,随着越来越多的人升级到pd 0.24.2,并开始看到FutureWarning,他们将养成在尝试绘制大熊猫类型之前注册转换器的习惯,但在那之前,这将是一个艰难的转变。我主要指责熊猫实施这种不良行为,然后以一种不向后兼容的方式回溯,但也许我们可以做些什么来更好地处理这一转变。“

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61443261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档