与熊猫数据框中的日期绘图一致

塔佩勒

熊猫有时决定以不同的方式绘制带有timeindex的DataFrame。

我正在使用绘制熊猫时间序列DataFramedf.plot()并为不同的列获取不同的行为,如如何显示日期,却不理解为什么。我正在绘制6月18日的数据,因此x轴有时以非常混乱的方式显示小时06:00、08:00 ...,有时还显示日期/小时:06-18 06、06-18 08, ...为什么?相同的df,不同的列,相同的时间索引

认真的重要性

让我们创建一个最小的示例。数据之间平均间隔5小时(5h00、10h00、15h00)。

import pandas as pd
import matplotlib.pyplot as plt

index = pd.to_datetime(["2019-09-11 05:00:00", 
                        "2019-09-11 10:00:30",
                        "2019-09-11 15:00:00"])

pd.DataFrame({"x" : [1,2,4], "y" : [3,4,4]}, index=index).plot()
plt.show()

这将导致以下绘图:

在此处输入图片说明

现在,让30秒增加一个日期时间,

index = pd.to_datetime(["2019-09-11 05:00:00",
                        "2019-09-11 10:00:30",  # <-- added 30 seconds here
                        "2019-09-11 15:00:00"])

现在数据不再等距分布了,结果是:

在此处输入图片说明

因此,在后一种情况下,pandas不会将其视为“ ts_plot”“ ts”大概代表时间序列,但有人可能会认为两者都是时间序列。但是,当然不能对后一种情况进行重采样-因此这似乎是潜在的区别。
不幸的是,熊猫将格式化程序与这种时间序列联系在一起,并且无法手动更改。

通过放入x_compat=Trueplot函数,可以获得一致的结果这将确保不使用独立于数据的“ ts”形轴。它将始终导致第二种情节。

df.plot(x_compat=True)

这样做的好处是,您可以通过matplotlib.dates格式器和定位器手动更改那些法线图的格式

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章