2012-11-28 3 views
1

정말 고민 중입니다.geom_boxplot에 geom_point 레이어 덮어 쓰기

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) 

답변

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에게 감사합니다. –