在学习有关可视化数据的在线课程时,我遇到了这一行代码。
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns有谁能告诉我
pd.plotting.register_matplotlib_converters()我提到了正式文件,但没有给出明确的解释。文档
发布于 2020-04-26 15:25:17
我在文档里发现了这个
此函数修改全局matplotlib.units.registry字典。熊猫添加自定义转换器
因此,我猜它可以确保pandas数据类型(如pd.Timestamp )可以在matplotlib图中使用,而不必将它们转换为另一种类型。
发布于 2020-04-27 15:44:09
不久前,我在GitHub上找到了Bletham的以下回复。https://github.com/facebook/prophet/issues/999
“谢谢你提出这个问题。
做出这一改变是为了避免在熊猫周围引入FutureWarning。如果您使用pd 0.24.2的fb先知0.4,那么当您调用Prophet模型上的绘图时,您将得到
/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,他们将养成在尝试绘制大熊猫类型之前注册转换器的习惯,但在那之前,这将是一个艰难的转变。我主要指责熊猫实施这种不良行为,然后以一种不向后兼容的方式回溯,但也许我们可以做些什么来更好地处理这一转变。“
https://stackoverflow.com/questions/61443261
复制相似问题