时间序列x轴的日期来自datetimeindex pandas

时间:2015-08-19 13:12:43

标签: python pandas time-series

我有以下数据框,我可以使用.groupby()为每个发件人生成图表:

                         sender  temp_3
utctime                                
2014-10-24 11:21:08           a    24.7
2014-10-24 11:21:09           b    22.8
2014-10-24 11:21:09           c    23.2
2014-10-24 11:21:09           d    24.3
2014-10-24 11:21:10           e    23.9
2014-10-24 11:21:10           a    24.7
2014-10-24 11:21:11           b    22.9
2014-10-24 11:21:11           c    23.1
2014-10-24 11:21:11           d    24.2
2014-10-24 11:21:12           e    23.9
2014-10-24 11:21:12           a    24.7
2014-10-24 11:21:13           b    22.9
2014-10-24 11:21:13           c    23.1
2014-10-24 11:21:13           d    24.2
2014-10-24 11:21:14           e    23.9
2014-10-24 11:21:14           a    24.7
2014-10-24 11:21:15           b    22.9
2014-10-24 11:21:15           c    23.2
2014-10-24 11:21:15           d    24.1
2014-10-24 11:21:16           e    23.9

这是我的代码:

for key, grp in stack.groupby(['sender']):
    plt.plot(grp.index,
             grp['temp_3'].dropna(),
             label='%s %s' % ('Temperature', key))

但是,当我将此应用于我的完整数据集时,在utctime中有多个日期,x轴仍然是时间 - 我希望它在这种情况下显示日期。

以下是完整数据集的示例:

                    sender  temp_3
utctime                                
2014-10-23 13:15:08           a    23.0
2014-10-24 16:09:13           b    24.1
2014-10-24 18:56:01           a    23.3
2014-10-24 21:42:42           a    23.0
2014-10-25 00:29:22           a    22.7
2014-10-25 03:16:02           c    23.1
2014-10-25 06:02:43           c    22.8
2014-10-25 08:49:23           c    23.7
2014-10-25 11:36:03           c    24.8
2014-10-25 14:22:43           c    25.7
2014-10-25 17:09:24           d    24.9
2014-10-25 19:56:05           b    24.6
2014-10-25 22:42:45           b    24.2
2014-10-26 01:29:26           e    22.7
2014-10-26 04:16:15           d    23.6
2014-10-26 07:02:56           e    22.4
2014-10-26 09:49:36           e    22.7
2014-10-26 12:36:16           e    22.2
2014-10-26 15:22:57           e    23.1
2014-10-26 18:09:46           d    23.8
2014-10-26 20:56:26           b    23.8
2014-10-26 23:43:07           e    22.7

我发布图片但需要更多代表!

我已经尝试在关注其他一些堆栈帖子之后转换.to_julian_time和to_py_datetime。我也尝试过grp.index.date,但是这仍然会在x轴上给出时间,而且更糟糕的是因为它丢失了细节。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在xaxis上设置格式应该可以解决问题:

plotaxis = plt.figure().gca()
plotaxis.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%d/%m/%y\n%H:%M'))
for key, grp in stack.groupby(['sender']):
plt.plot(grp.index,
         grp['temp_3'].dropna(),
         label='%s %s' % ('Temperature', key))