ggplot2和cumsum()

Bob*_*Bob 7 r ggplot2 cumsum

我有一组UNIX时间戳和URI,我试图绘制每个URI的累积请求数.我设法使用虚拟列一次为一个URI执行此操作:

x.df$count <- apply(x.df,1,function(row) 1) # Create a dummy column for cumsum
x.df <- x.df[order(x.df$time, decreasing=FALSE),] # Sort
ggplot(x.df, aes(x=time, y=cumsum(count))) + geom_line()
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,这将产生大约30个情节.

ggplot2允许你将多行绘制成一个图(我从这里复制了这段代码):

ggplot(data=test_data_long, aes(x=date, y=value, colour=variable)) +
    geom_line()
Run Code Online (Sandbox Code Playgroud)

问题在于,这种方式cumsum()会依赖于此.

有人有想法吗?

Aru*_*run 9

这是一个测试数据,首先使用plyr's transform计算累积和,然后使用以下方法将该数据应用于绘图ggplot2:

set.seed(45)
DF <- data.frame(grp = factor(rep(1:5, each=10)), x=rep(1:10, 5))
DF <- transform(DF, y=runif(nrow(DF)))

# use plyr to calculate cumsum per group of x
require(plyr)
DF.t <- ddply(DF, .(grp), transform, cy = cumsum(y))

# plot
require(ggplot2)
ggplot(DF.t, aes(x=x, y=cy, colour=grp, group=grp)) + geom_line()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @Bob onus是你提供一个可重复的例子. (3认同)
  • 我认为我已经用数据确定了问题。如果您的数据未按升序排序,看起来您将不会获得单调图。 (2认同)