0

所以我使用下面的代码来生成图表,其中 appl 和 apple 生成了 2 个不同的图表,现在我想将它们组合成一个图表

data <- ddply(data, .(Value), summarise, 
               N    = length(means),
               mean = mean(means),
               sd   = sd(means),
               se   = sd(means) / sqrt(length(means)) )

apple=ggplot(data, aes(x=Value, y=mean)) + 
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.1) +
  geom_ribbon(aes(ymin=mean-se, ymax=mean+se),alpha=0.5) +
  geom_line() +
  geom_point()

dat <- ddply(dat1, .(Value), summarise, 
               N    = length(means),
               mean = mean(means),
               sd   = sd(means),
               se   = sd(means) / sqrt(length(means)))

appl=ggplot(dat, aes(x=Value, y=mean)) + 
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.1) +
  geom_ribbon(aes(ymin=mean-se, ymax=mean+se),alpha=0.5) +
  geom_line() +
  geom_point()
4

1 回答 1

1

答案涉及将数据集组合成一个大数据集,并附加一列指定该子集属于哪个数据集。无需单独创建绘图并将它们组合起来。假设列名为id,那么您可以使用附加参数 inaes使绘图工作,即aes(x=Value, y=mean, color=id)。组合数据集可以使用rbind.

代码示例:

df1 = data.frame(Value = sample(LETTERS[1:8], 1000, replace = TRUE), 
                 means = runif(1000))
df2 = data.frame(Value = sample(LETTERS[1:8], 1000, replace = TRUE), 
                 means = runif(1000) + 0.5)
df1 = ddply(df1, .(Value), summarise, 
               N    = length(means),
               mean = mean(means),
               sd   = sd(means),
               se   = sd(means) / sqrt(length(means)))
df1$id = "ID1"
df2 = ddply(df2, .(Value), summarise, 
               N    = length(means),
               mean = mean(means),
               sd   = sd(means),
               se   = sd(means) / sqrt(length(means)))
df2$id = "ID2"
df_all = rbind(df1, df2)
ggplot(df_all, aes(x=Value, y=mean, color = id)) + 
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.1) +
  geom_ribbon(aes(ymin=mean-se, ymax=mean+se),alpha=0.5) +
  geom_line() +
  geom_point()

结果如下图:

在此处输入图像描述

请注意,由于您缺乏示例数据,我不得不发明一些数据,因此这可能不完全适合您的情况。但是,它很好地说明了这种方法。

于 2013-04-30T17:18:41.490 回答