用ggplot2绘制1000行

时间:2015-01-07 18:59:10

标签: r ggplot2

我有1000个时间序列向量,并希望在ggplot2图上绘制所有这些向量,x轴的范围为(1:1000)。我还想将α设置得相对较低,以查看某些区域的密度。

如果没有1000个geom_line语句,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

这是一个演示如何在R中创建可重现示例的示例,并演示如何使用ggplot2绘制1000行:

library(ggplot2)
library(reshape2)

n = 1000
set.seed(123)

mat = matrix(rnorm(n^2), ncol=n)
cmat = apply(mat, 2, cumsum)
cmat = t(cmat)
rownames(cmat) = paste("trial", seq(n), sep="")
colnames(cmat) = paste("time", seq(n), sep="")

dat = as.data.frame(cmat)
dat$trial = rownames(dat)
mdat = melt(dat, id.vars="trial")
mdat$time = as.numeric(gsub("time", "", mdat$variable))


p = ggplot(mdat, aes(x=time, y=value, group=trial)) +
    theme_bw() +
    theme(panel.grid=element_blank()) +
    geom_line(size=0.2, alpha=0.1)

enter image description here