覆盖geom_boxplot上的geom_point图层

时间:2012-11-28 02:35:23

标签: r graphics ggplot2

真的很挣扎。

a& b是现实世界中的实际数据集,a非常大。我得到一个错误ggplot2不知道如何处理类uneval的数据。我要做的是将第二个数据集中的单个点叠加到箱线图上,以突出显示一个特定样本与宇宙相比的方式。

知道我做错了什么吗?我该如何解决?

a = data.frame(YTD.Retn=runif(1000,-10,10),sector="a")
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="b"))
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="c"))
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="d"))
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="e"))
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="f"))
a = rbind(a,data.frame(YTD.Retn=runif(1000,-10,10),sector="g"))

b = data.frame(sector=c("a","b","c","d","e","f","g"),YTD.Retn=c(5,6,7,3,2,-1,-5))

p1 =ggplot(a,aes(factor(sector),YTD.Retn,fill=factor(sector))) + geom_boxplot() +
  scale_fill_discrete(guide=F) +
  geom_point(b,aes(factor(sector),YTD.Retn))

plot(p1)

1 个答案:

答案 0 :(得分:3)

data调用中调用时,您需要为参数geom_...()命名。命名参数通常是很好的做法(如果有点耗费时间)

p1 =ggplot(data = a, aes(x = factor(sector), y = YTD.Retn, fill=factor(sector))) + 
   geom_boxplot() +
  scale_fill_discrete(guide=F) +
  geom_point(data = b, aes(x= factor(sector),y= YTD.Retn))

plot(p1)