d
是我的数据框:
set.seed(0)
date<-seq(as.Date("2000/1/1"), as.Date("2000/1/10"), by = "days")
x <- c(rep(1:10, 2,5)+rnorm(20)/4, rep(6:15, 2,5) + rnorm(20)/5)
y <- c(rep(1:10, 2)+rnorm(20)/5, rep(6:15, 2) + rnorm(20)/5)
replicate <- gl(4, 10, 40)
d <- data.frame(replicate=replicate,date=date,y=y,x=x)
我想使用for循环内的数据框在同一图上绘制y和x。 X轴将为date
列。因为我只有4个不同的组(重复是索引组),所以我将必须有4个图,其中X轴是日期列,正如我之前提到的。我一直在尝试这样做,但是没有用:
for (var in unique(d$replicate)) {
dev.new()
print(ggplot(d[d$replicate==var,],aes(date=date, y=y, colour=replicate)) + geom_line())
}
有帮助吗?
答案 0 :(得分:1)
首先,在您的aes()
调用中,第一个参数应命名为x
而不是date
,这样调用将变为:aes(x=date, y=y, colour=replicate))
。代码应该起作用。
但是,要在同一日期的x轴上绘制x和y,则需要执行以下操作:
for (i in unique(d$replicate)){
dev.new()
p <- ggplot(filter(d, replicate == i),
aes(date)) +
geom_line(aes(y = y, colour = "blue")) +
geom_line(aes(y = x, colour = "red"))
print(p)
}