所以我使用下面的代码来生成图形,其中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()
答案 0 :(得分:1)
答案涉及将数据集合并为一个大数据集,另外一列指定该子集所属的数据集。无需单独创建绘图并将它们组合在一起。我们假设该列名为id
,然后您可以在aes
中使用其他参数来使图表正常工作,即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()
结果如下图所示:
请注意,由于缺少示例数据,我不得不发明一些数据,因此这可能不完全适合您的情况。但是,它很好地说明了这种方法。