我试图弄清楚如何做某事,ggplot2
这R
似乎应该很简单。这太简单了……我一生都无法弄清楚如何去做。我确定答案在 ggplot 文档中正盯着我看,但我无法……找到它。所以。我在这。
我经常有很多这样的数据集:
tdf <- data.frame('datetime' = seq(from=as.POSIXct('2012-01-01 00:00:00'),
to=as.POSIXct('2012-01-31 23:59:59'), by=1))
tdf$variable <- rep(c('a','b','c'), length.out=length(tdf$datetime))
tdf$value <- sample(1:10, length(tdf$datetime), replace=T)
> head(tdf)
datetime variable value
1 2012-01-01 00:00:00 a 7
2 2012-01-01 00:00:01 b 3
3 2012-01-01 00:00:02 c 7
4 2012-01-01 00:00:03 a 8
5 2012-01-01 00:00:04 b 2
6 2012-01-01 00:00:05 c 3
也就是说:我有一个分类变量(一个因子)、一个该变量的值以及记录所述观察的时间戳。我想为给定时间“桶”绘制每个分类变量的值的总和 - 最好使用ggplot2
. 我想这样做,而不必在可视化之前预先聚合它——也就是说,我真的想要保持数据集不变并传递参数以ggplot2
按时聚合它的灵活性。然而,我完全糊涂了。上的文档geom_line
说用来stat='identity'
获取价值的总和,但是一旦我这样做了,我就不能再定义任何类型的 bin。如果我使用stat_summary
,我经常根本不会得到情节。我得到的最接近的是:
tdf$variable <- factor(tdf$variable)
vis <- ggplot(tdf, aes(x=datetime, y=value, color=variable))
vis <- vis + geom_line(stat='identity')
vis <- vis + scale_x_datetime()
...至少打印一个图,其中一行对应于每个因子的值...按秒。如果不做大量工作来预先聚合数据,我就无法bin
在sum(value)
一个小时、一天或一周内将其用于操作。
帮助?
编辑:向任何 R 会话因该测试数据而窒息的人表示歉意。我已经把它剪回来了。