迭代地构建ggplot复合

时间:2016-07-11 03:09:59

标签: r ggplot2 iteration

我想使用ggplot迭代生成图。

想象一下,我生成并绘制了一个数据框...

library(ggplot2)
library(reshape2)

x <- seq(0, 4 * pi, 0.1)
n <- length(x)
y1 <- 0.5 * runif(n) + sin(x)
df1 <- data.frame(x,y1)
df1m <- melt( df1, id="x")
p1 <- ggplot( data=df1m, aes(x=x,y=value)) + geom_point(color="blue")
p1

...然后一段时间后生成并绘制第二个数据帧...

y2 <- 0.5 * runif(n) + cos(x) - sin(x)
df2 <- data.frame(x,y2)
df2m <- melt( df2, id="x")
p2 <- ggplot( data=df2m, aes(x=x,y=value)) + geom_point(color="red")
p2

...但是如何绘制两个重叠?以下给出了错误:

p1 + p2

如果df1和df2可以同时使用,并且我确信我可以存储各个数据帧,那么有很多如何执行此操作的示例,但理想情况下我希望能够将图形构建为数据变得可用。

1 个答案:

答案 0 :(得分:3)

您可以在同一个地块中添加第二层

library(ggplot2)

p1 <- ggplot() + geom_point(data=df1m, (aes(x=x,y=value)), color="blue")

p1 + geom_point(data=df2m, aes(x=x,y=value), color="red")

enter image description here