R:计算并在ggplot图上叠加事件系列基于分钟的总计
考虑一个数据帧R:计算并在ggplot图上叠加事件系列基于分钟的总计,r,ggplot2,R,Ggplot2,考虑一个数据帧df,该数据帧具有从web服务器访问日志中提取的两个字段(下面的示例,持续时间以毫秒为单位,为了简化示例,让我们忽略日期) qplot(时间、持续时间、数据=df)为我提供了持续时间的图表。我想加上一行,显示每分钟的请求数。理想情况下,该行每分钟有一个数据点,时间为:30秒。如果这太复杂,一个可接受的替代方案是在一分钟内有一个具有相同值(请求计数)的步骤行 一种方法是trunc(df$time,units=c(“mins”)),然后将每分钟的请求计数计算到一个新列中,然后将其绘制成
df
,该数据帧具有从web服务器访问日志中提取的两个字段(下面的示例,持续时间以毫秒为单位,为了简化示例,让我们忽略日期)
qplot(时间、持续时间、数据=df)代码>为我提供了持续时间的图表。我想加上一行,显示每分钟的请求数。理想情况下,该行每分钟有一个数据点,时间为:30秒。如果这太复杂,一个可接受的替代方案是在一分钟内有一个具有相同值(请求计数)的步骤行
一种方法是trunc(df$time,units=c(“mins”))
,然后将每分钟的请求计数计算到一个新列中,然后将其绘制成图表
我想问的是,是否有更直接的方法来实现上述目标。谢谢。以下内容可能会有所帮助。使用步骤和绘图创建数据框:
time duration sec sec2 diffsec2 step30s steps
1 18:17:26.552 8 26.552 552 0 0 0
2 18:17:26.632 10 26.632 632 80 1 1
3 18:17:26.681 12 26.681 681 49 0 0
4 18:17:26.733 4 26.733 733 52 1 1
5 18:17:26.778 5 26.778 778 45 0 0
6 18:17:26.832 5 26.832 832 54 1 1
7 18:17:26.889 4 26.889 889 57 1 2
8 18:17:26.931 3 26.931 931 42 0 0
9 18:17:26.991 3 26.991 991 60 1 1
10 18:17:27.040 5 27.040 040 -951 0 0
11 18:17:27.157 4 27.157 157 117 1 1
12 18:17:27.209 14 27.209 209 52 1 2
13 18:17:27.249 4 27.249 249 40 0 0
14 18:17:27.303 4 27.303 303 54 1 1
15 18:17:27.356 13 27.356 356 53 1 2
16 18:17:27.408 13 27.408 408 52 1 3
17 18:17:27.450 3 27.450 450 42 0 0
18 18:17:27.506 13 27.506 506 56 1 1
19 18:17:27.546 3 27.546 546 40 0 0
20 18:17:27.616 4 27.616 616 70 1 1
21 18:17:27.664 4 27.664 664 48 0 0
22 18:17:27.718 3 27.718 718 54 1 1
23 18:17:27.796 10 27.796 796 78 1 2
24 18:17:27.856 3 27.856 856 60 1 3
25 18:17:27.909 3 27.909 909 53 1 4
26 18:17:27.974 3 27.974 974 65 1 5
27 18:17:28.029 3 28.029 029 -945 0 0
>
> ggplot(ddf)+geom_point(aes(x=time, y=duration))+geom_line(aes(x=time, y=steps, group=1),color='red')
如果time
采用日期时间格式,则cut
函数具有日期和日期时间对象的方法。例如,df$timeCut=cut(df$time,breaks=“min”)
。有关详细信息,请参阅?cut.Date
。另请参阅,以了解使用更灵活的xts
软件包的方法。
time duration sec sec2 diffsec2 step30s steps
1 18:17:26.552 8 26.552 552 0 0 0
2 18:17:26.632 10 26.632 632 80 1 1
3 18:17:26.681 12 26.681 681 49 0 0
4 18:17:26.733 4 26.733 733 52 1 1
5 18:17:26.778 5 26.778 778 45 0 0
6 18:17:26.832 5 26.832 832 54 1 1
7 18:17:26.889 4 26.889 889 57 1 2
8 18:17:26.931 3 26.931 931 42 0 0
9 18:17:26.991 3 26.991 991 60 1 1
10 18:17:27.040 5 27.040 040 -951 0 0
11 18:17:27.157 4 27.157 157 117 1 1
12 18:17:27.209 14 27.209 209 52 1 2
13 18:17:27.249 4 27.249 249 40 0 0
14 18:17:27.303 4 27.303 303 54 1 1
15 18:17:27.356 13 27.356 356 53 1 2
16 18:17:27.408 13 27.408 408 52 1 3
17 18:17:27.450 3 27.450 450 42 0 0
18 18:17:27.506 13 27.506 506 56 1 1
19 18:17:27.546 3 27.546 546 40 0 0
20 18:17:27.616 4 27.616 616 70 1 1
21 18:17:27.664 4 27.664 664 48 0 0
22 18:17:27.718 3 27.718 718 54 1 1
23 18:17:27.796 10 27.796 796 78 1 2
24 18:17:27.856 3 27.856 856 60 1 3
25 18:17:27.909 3 27.909 909 53 1 4
26 18:17:27.974 3 27.974 974 65 1 5
27 18:17:28.029 3 28.029 029 -945 0 0
>
> ggplot(ddf)+geom_point(aes(x=time, y=duration))+geom_line(aes(x=time, y=steps, group=1),color='red')