如何在Python Matplotlib中绘制两个具有不同时间间隔的数据集并使它们共享轴

用户名

我有两个数据集,A和B:

设置A:
date time                 data
6/21/2016 00:00:01     1
6/21/2016 01:00:00     2
6/21/2016 02:03:00     3

B组:
date time                 data
6/21/2016 00:01:10    10
6/21/2016 01:02:00    20
6/21/2016 01:23:00    30
6/21/2016 01:30:00    40
6/21/2016 02:01:00    50

我可以在两个具有相同开始和结束时间戳记的独立绘图上绘制两个集合。(实际上,设置B的增量是5秒,设置A的增量是1分钟)

我想要做的是:
1)用秒填充Set A和Set B(请参见下表)。
2)空数据没问题,matplotter可以将其忽略。3
)具有新日期时间的绘图
目的:我要这样做是将多个数据源(datetime-temperature,datetime-datalogger等)与单个时间线组合在一起。

我的问题:
a)是否有一个预先完成的算法(matplotlib,datetime和其他一些模块)来完成1)?
b)如果a)是否定的,那么完成1)的最佳方法是什么?
c)是否有更好(更简便)的方法来实现目标?

集A:
date time                 data
6/21/2016 00:00:01     1
6/21/2016 00:00:02      
6/21/2016 00:00:03      
...
6/21/2016 00:59:58      
6/21/2016 00:59:59      
6/21/2016 01:00:00     2
6/21/2016 01:00:01      
6/21/2016 01:00:02      
...
6/21/2016 02:02:58      
6/21/2016 02:02:59      
6/21/2016 02:03:00     3

B组:
date time                 data
6/21/2016 00:00:01      
6/21/2016 00:00:02      
...
6/21/2016 00:01:08      
6/21/2016 00:01:09      
6/21/2016 00:01:10    10
6/21/2016 00:01:11      
6/21/2016 00:01:12      
...
6/21/2016 02:00:58      
6/21/2016 02:00:59      
6/21/2016 02:01:00    50
...
6/21/2016 02:02:59      
6/21/2016 02:03:00      

巷道

跳过问题(c)的权利,如果是我,我不会费心用第二个分辨率填充两个数据集。相反,我会做一个简单的pd.merge绘图。

df_C = pd.merge(df_A, df_B, how='outer', left_index=True, right_index=True)
# forward fill data
df_C.ffill(inplace=True)

现在df_C

In [68]: df_c
Out[68]: 
                     dataA  dataB
2016-06-21 00:00:01    1.0    NaN
2016-06-21 00:01:10    1.0   10.0
2016-06-21 01:00:00    2.0   10.0
2016-06-21 01:02:00    2.0   20.0
2016-06-21 01:23:00    2.0   30.0
2016-06-21 01:30:00    2.0   40.0
2016-06-21 02:01:00    2.0   50.0
2016-06-21 02:03:00    3.0   50.0

然后只需调用df_C.plot()即可绘制数据。


如果您仍然希望获得第二个分辨率,可以通过使用 pd.date_range

df_C.reindex(pd.date_range(df_C.index.min(), df_C.index.max(), freq='s'))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中的同一轴上绘制具有不同时间频率的两个时间序列数据?

SparkSQL:如何对两个具有不同时间戳的时间序列数据集求和

如何合并具有不同时间戳的两个不同数据帧?

如何合并具有不同时间戳密度的两个熊猫数据帧?

如何并排组合两个具有不同时间框架但有空白的 Panda 数据框

如何合并两个具有不同时间戳的熊猫

如何在同一图表中在xAxis中绘制具有不同数据时间的两个系列

如何在R中同步具有部分不同时间戳的数据

如何将具有不同时间轴的 2 个或多个 maesurements(csv) 绘制成一个带有熊猫的图形并绘图

如何在python中的两个不同y轴上绘制两个变量?

如何在熊猫fataframe中查找具有相同时间间隔的行

在Python中合并具有不同时间频率的系列/数据框

如何在同一轴上绘制来自三个不同时间段的 x/y 数据点以进行分析?

如何在不同时间调用python中的函数?

如何关联具有相同日期但不同时间的两个字段

如何将不同时间收集的两个不同输入关联起来,并在需要时召回它们?

如何计算R中具有不同时间范围和NA的时间序列数据的均值

如何在处理中的不同时间间隔后触发不同的事件?

如何在Excel中创建具有两个Y轴且值不同的图形

合并具有不同时间戳(不同时间间隔)的两个数据帧

如何设置两个curl命令以永远在不同时间执行?

从具有不同 y 间隔的两个数据集绘制两个时间序列

Matplotlib如何在两个y轴上绘制

如何在Python中使用两个不同的Y轴绘制图

如何在Spark中具有不同列数的两个DataFrame上执行并集?

如何在Python中划分两个具有不同长度和重复索引的数据框

如何删除包含相同字段但具有不同时间戳的旧数据的 Sqlite 行?

如何在python中具有相同键的两个不同字典中组合值

如何在R数据框中聚合具有两个不同功能的两个不同列