2012-02-13 3 views

답변

1

qplot+ geom_point(...)을 사용하십시오 (플롯 된 모든 점을 얻으려면 + geom_point() 만 추가하면됩니다).

는 당신이 플롯 할 그 점을 선택 선택적으로 플롯하려면

n <- nrow(mtcars) 
# plot every second point 
idx <- seq(1,n,by=2) 

qplot(factor(cyl), mpg, data=mtcars, geom="boxplot") + 
    geom_point(aes(x=factor(cyl)[idx],y=mpg[idx])) # <-- see [idx] ? 

이전에 손 포인트를 알고있는 경우를 직접 예를 들어 그들을 공급할 수 :

qplot(factor(cyl), mpg, data=mtcars, geom="boxplot") + 
    geom_point(aes(x=factor(c(4,6,8)),y=c(15,20,25))) # plot (4,15),(6,20),... 
+0

오류가 발생하는 이유를 알고 계십니까? 오류 : 미학은 길이가 1이거나 데이터 (32)와 같아야합니다. x, y – John

1

당신이 할 수있는 qplot() 대신 ggplot()을 사용하여 둘 다 표시하십시오. 구문은 이해하기가 조금 더 어려울 수 있지만 대개 더 많은 작업을 수행 할 수 있습니다.

boxpt <- ggplot(data = mtcars, aes(factor(cyl), mpg)) 
boxpt + geom_boxplot(aes(factor(cyl), mpg)) + geom_point(aes(factor(cyl), mpg)) 

내가 당신 만 상자의 상단에 특정 지점을 세우고 무슨 뜻인지 모르겠지만, 당신은 싼를 원하는 경우 (그리고 : 당신이 상자의 플롯과 포인트를 모두 플롯하려면 당신은 쓸 수 있습니다 그냥 상자의 가장자리 위의 점을 보여주는 아마 매우 똑똑하지) 방법은 여기있다 : 기본적으로

boxpt + geom_boxplot(aes(factor(cyl), mpg)) + geom_point(data = ddply(mtcars, .(cyl),summarise, mpg = mpg[mpg > quantile(mpg, 0.75)]), aes(factor(cyl), mpg)) 

geom_point에 공급되는 데이터를 제외하고 같은 일이만을 mpg의 번호를 포함하도록 조정되는 것 실린더에 의한 분배의 1/4. 일반적으로 나는 사람들이 수염을 넘어서는 지점을 보길 기대한다고 생각하기 때문에 이것은 좋은 습관이라고 확신하지는 못합니다.

4

두 개의 다른 데이터 세트 (mtcars의 경우 boxplot, 리터럴 값의 data.frame 포인트)를 사용하여 두 기하학을 플로팅하려는 경우 이것이 의도를 명확하게하는 방법입니다. 이것은 내가 점의 집합에 대한 color = 'red'에 던졌다 (ggplot2_2.1.0)

library(ggplot2) 
ggplot() + 
    # box plot of mtcars (mpg vs cyl) 
    geom_boxplot(data = mtcars, 
       aes(x = factor(cyl), y= mpg)) + 
    # points of data.frame literal 
    geom_point(data = data.frame(x = factor(c(4,6,8)), y = c(15,20,25)), 
      aes(x=x, y=y), 
      color = 'red') 

ggplot의 (2016 9월) 현재 버전과 함께 작동, 그래서 geom_boxplot

의 일환으로 발생하는 점에서 구별하기 쉽습니다

enter image description here