2012-11-28 45 views
1

真的很困難。在geom_boxplot上覆蓋geom_point圖層

a & b是真實世界中的實際數據集,a是非常大的。我得到一個錯誤ggplot2不知道如何處理類的數據uneval。我想要做的是將第二個數據集中的單個點疊加到boxplot上,突出顯示一個特定樣本與宇宙的對比情況。

任何想法我做錯了什麼?我該如何解決它?

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) 

回答

3

您需要時調用geom_...()中調用命名參數data。命名參數一般是很好的做法(如果有些時間消耗的話)

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) 
+0

當你知道如何時,似乎很容易。謝謝@mnel –