我有1000个时间序列向量,并希望在ggplot2图上绘制所有这些向量,x轴的范围为(1:1000)。我还想将α设置得相对较低,以查看某些区域的密度。
如果没有1000个geom_line语句,有没有办法做到这一点?
答案 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)