2014-05-15 2 views
16

와 산점도하는 상자 그림을 추가하는 방법 :내가 지터 산점도를 생산하기 위해 다음 명령을 사용하고 지터

ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T)) 
library(lattice) 
stripplot(NUMS~GRP,data=ddf, jitter.data=T) 

나는이 점 (각 그룹의 하나)을 통해 상자 그림을 추가 할 수 있습니다. 나는 검색을 시도했지만 모든 포인트 (그리고 이상치뿐만 아니라)와 지터를 플로팅하는 코드를 찾을 수 없습니다. 어떻게 해결할 수 있을까요? 당신의 도움을 주셔서 감사합니다.

+1

격자 여야합니까? 그렇지 않은 경우 std를 'with (ddf, {boxplot (NUMS ~ GRP); 포인트 (지터 (숫자가있는 숫자), NUMS, col = rgb (0,0,0, .2), cex = pch = 19)})'. – lukeA

+0

기본 그래픽을 사용하는 것이 좋습니다. 당신의 솔루션은 잘 작동합니다. 감사. – rnso

+0

ggplot2로이 작업을 수행 할 수 있습니까? 나는 {ggplot (ddf, aes (x = GRP, y = NUMS)) + geom_boxplot() + geom_jitter()}를 시도했지만 지터가 너무 많이 분산 될 수 있습니까? – rnso

답변

27

여기에는 기본 그래픽을 사용하는 한 가지 방법이 있습니다.

boxplot(NUMS ~ GRP, data = ddf, lwd = 2, ylab = 'NUMS') 
stripchart(NUMS ~ GRP, vertical = TRUE, data = ddf, 
    method = "jitter", add = TRUE, pch = 20, col = 'blue') 

enter image description here

+0

그래, 아주 잘 작동합니다. 감사. 나는 stripllot 다음에 boxplot을 시도하고 있었고 작동하지 않았습니다. – rnso

+2

'add = TRUE' 인수는 키입니다. :) –

+0

add = T는 {stripplot (NUMS ~ GRP, data = ddf, jitter = T) 이후로는 충분하지 않을 수도 있습니다. 상자 플롯 (NUMS ~ GRP, 데이터 = ddf, 추가 = T)}이 작동하지 않습니다. 외관상으로는 사람은 점 또는 도표에 선행 된 "작의"를 첫째로 두어야한다. – rnso

17

ggplot2에서이 작업을 수행하려면, 시도 : 나는 '하지만

ggplot(ddf, aes(x=GRP, y=NUMS)) + 
    geom_boxplot(outlier.shape=NA) + #avoid plotting outliers twice 
    geom_jitter(position=position_jitter(width=.1, height=0)) 
분명히

ggplot2 version of boxplot + jitter

당신이 (당신의 마음에 드는 position_jitter()의 폭과 높이 인수를 조정할 수 있습니다 d는 높이 지 터링으로 인해 플롯이 부정확 해 지므로 height=0을 권장합니다.