2016-12-05 22 views
0

R에서는 특정 x 축에서 플롯에 평균을 더하는 방법이 있습니까? 예를 들어, 다음과 같이하고 싶습니다.특정 X 축에서 R의 평균을 그립니다.

plot(1, 1, xlim = c(0, 6.5), ylim = c(0,300), type = 'n', xlab = '', ylab = '', xaxt = 'n') #xaxs="i",yaxs="i") 
boxplot(dataset,at = 0.5, add = T, range = 6,yaxt = 'n') 
points(mean(dataset), at = 0.5, add = T) 

"at"및 "add"는 '그래픽 매개 변수가 아닙니다'라는 메시지가 나타납니다. 해결 방법이 있습니까?

그래서 저는 RStudio를 사용하고 있습니다. 각각 11 개의 숫자가있는 6 개의 다른 값 (data_a, data_b, data_c, data_d, data_e 및 data_f)이 있습니다. 현재 코드는 다음과 같습니다.

par(xpd = FALSE) 
par(mar=c(8,4.5,2,1)) 
plot(1, 1, xlim = c(0, 6.5), ylim = c(0,300), type = 'n', xlab = '', ylab = '', xaxt = 'n') #xaxs="i",yaxs="i") 
boxplot(data_a,at = 0.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_b,at = 1.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_c,at = 2.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_d,at = 4, add = T, range = 6,yaxt = 'n') 
boxplot(data_e,at = 5, add = T, range = 6,yaxt = 'n') 
boxplot(data_f,at = 6, add = T, range = 6,yaxt = 'n') 
axis(2, at = 150, pos = -0.65, tck = 0, labels = 'X axis label',cex.axis=1.1) 
axis(1, at = c(0.5,1.5,2.5,4,5,6),labels=c('','','','','','')) 
axis(1, at = c(1.5,5),pos= -25,labels=c('label 1','labe 2'),tick=FALSE) 
axis(1, at = c(3.25),labels=c(''),tck=-0.15) 
axis(1, at = c(3.25),pos = -50,labels=c('Y axis label'),tick=FALSE) 
abline(v=3.25) 
par(xpd = NA) 
text(0.5,-30, expression("a)) 
text(1.5,-30, expression("b")) 
text(2.5,-30,"c") 
text(4,-30, expression(d)) 
text(5,-30, expression("e")) 
text(6,-30,"f") 

이제 평균을 추가하고 싶습니다.

+0

당신이 당신의 샘을 추가 할 수 있습니다 프리 데이터 세트 –

답변

1

당신이 원하는 플롯을 얻기 위해이 시도 할 수 있습니다 :

다음은 홍채 데이터 세트를 사용하여 상자 그림에 빨간색 원으로 수단을 추가하는 예입니다 data_b 등) :

par(xpd = FALSE) 
par(mar=c(8,4.5,2,1)) 
plot(1, 1, xlim = c(0, 6.5), ylim = c(0,300), type = 'n', xlab = '', ylab = '', xaxt = 'n') #xaxs="i",yaxs="i") 
data_a <- runif(11, 0, 300) 
data_b <- runif(11, 0, 300) 
data_c <- runif(11, 0, 300) 
data_d <- runif(11, 0, 300) 
data_e <- runif(11, 0, 300) 
data_f <- runif(11, 0, 300) 
boxplot(data_a,at = 0.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_b,at = 1.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_c,at = 2.5, add = T, range = 6,yaxt = 'n') 
boxplot(data_d,at = 4, add = T, range = 6,yaxt = 'n') 
boxplot(data_e,at = 5, add = T, range = 6,yaxt = 'n') 
boxplot(data_f,at = 6, add = T, range = 6,yaxt = 'n') 
axis(2, at = 150, pos = -0.65, tck = 0, labels = 'X axis label',cex.axis=1.1) 
axis(1, at = c(0.5,1.5,2.5,4,5,6),labels=c('','','','','','')) 
axis(1, at = c(1.5,5),pos= -25,labels=c('label 1','label 2'),tick=FALSE) 
axis(1, at = c(3.25),labels=c(''),tck=-0.15) 
axis(1, at = c(3.25),pos = -50,labels=c('Y axis label'),tick=FALSE) 
abline(v=3.25) 
par(xpd = NA) 
text(0.5,-30, expression("a")) 
         text(1.5,-30, expression("b")) 
         text(2.5,-30,"c") 
         text(4,-30, expression("d")) 
         text(5,-30, expression("e")) 
         text(6,-30,"f") 
points(c(0.5,1.5,2.5,4,5,6), c(mean(data_a), mean(data_b), mean(data_c), mean(data_d), mean(data_e), mean(data_f)), pch = 22, col = "darkgrey", lwd = 7) 

enter image description here

1

박스 플롯의 경우 x 축의 플롯 위치는 단위 (1, 2, 3 등)입니다. 이것을 확인하려면 locator() 함수를 사용하십시오. 임의로 생성 data_a와 (

boxplot(Sepal.Length ~ Species, data = iris) 
points(seq_along(levels(iris$Species)), with(iris, tapply(Sepal.Length, Species, mean)), col = "red") 

enter image description here