ggplot2:使用stat_summary时如何覆盖2个图

时间:2014-03-07 10:39:14

标签: r ggplot2

我在R中是全新的,所以也许这个问题的答案是微不足道的,但我在网上搜索了几天后找不到任何解决方案。

我正在使用ggplot2创建包含我的样本平均值的图表,并在功能区中显示置信区间(我无法发布图片,但是这样的内容:S1

我的数据框(df)在第一列中有时间,而在其他列中测量的变量值(每列是测量的重复)。 我做了以下事情:

mdf<-melt(df, id='time', variable_name="samples")
p <- ggplot(data=mdf, aes(x=time, y=value)) +
  geom_point(size=1,colour="red")


stat_sum_df <- function(fun, geom="crosbar",  ...) { 
  stat_summary(fun.data=fun, geom=geom, colour="red") 
} 

p + stat_sum_df("mean_cl_normal", geom = "smooth")

我得到了我在开头展示的图表。

我的问题是:如果我有两个不同的数据框,每个数据框具有不同的变量,同时在同一个样本中测量,我如何在同一个图中绘制2个图?我尝试过的所有内容都以两组数据中的统计数据结束,或者仅在其中一组中进行统计,而不是两者都有。是否可以叠加图?

还有第二个小问题:是否可以改变色带的颜色?

谢谢!

1 个答案:

答案 0 :(得分:2)

类似的东西:

library(ggplot2)
a <- data.frame(x=rep(c(1,2,3,5,7,10,15,20), 5),
                y=rnorm(40, sd=2) + rep(c(4,3.5,3,2.5,2,1.5,1,0.5), 5),
                g = rep(c('a', 'b'), each = 20))

ggplot(a, aes(x=x,y=y, group = g, colour = g)) + 
 geom_point(aes(colour = g)) +
 geom_smooth(aes(fill = g))

enter image description here

我建议你阅读ggplot的基础知识。请查看?ggplot2以获取有关ggplot的帮助,还可查看可用的帮助主题here,尤其是group aesthetic如何操作。 您会发现Google小组中的discussion group很有用,也许可以加入。此外,QuickR在ggplot graphs上有很多示例,很明显,在Stackoverflow上有here