我有以下数据框,我可以使用.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轴上给出时间,而且更糟糕的是因为它丢失了细节。有什么想法吗?
答案 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))