2013-06-11 3 views
1

두 개의 y 축이있는 오차 막대가있는 여러 점을 플롯하려고합니다. 그러나 plotCI 또는 errbar 함수를 호출 할 때마다 par (new = TRUE) 호출을 사용하거나 사용하지 않고 새 플롯이 초기화됩니다. 두 Y 축 플롯 : confidence intervals

require(plotrix) 
x <- 1:10 
y1 <- x + rnorm(10) 
y2<-x+rnorm(10) 
delta <- runif(10) 

plotCI(x,y=y1,uiw=delta,xaxt="n",gap=0) 
axis(side=1,at=c(1:10),labels=rep("a",10),cex=0.7) 
par(new=TRUE) 
axis(4) 
plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0) 

는 또한 plotrix에서 twoord.plot 기능을 시도하지만, 나는 그것이 오차 막대를 추가 할 수 생각하지 않습니다.

ggplot2 동일한 Y 축을 가진 두 개의 다른 패널로 플로팅 할 수있었습니다.

이 방법이 있습니까?

답변

1

사용 add=TRUE,

FALSE (기본값)의 경우, 새로운 플롯을 만들; TRUE 인 경우 오류 막대를 기존 플롯에 추가합니다.

예를 들어 마지막 행이된다! 하드 ggplot2와 이렇게 :

plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0,add=TRUE) 

[1]

PS를 [여기서 화상 정보 입력]. this hadley code

편집

사용자 좌표계에서 살펴 이제 새로운 USR 설정을 지정하여 재정의된다. 여기 나는 그것을 manulaly한다.

plotCI(x,y=y1,uiw=delta,xaxt="n",gap=0) 
axis(side=1,at=c(1:10),labels=rep("a",10),cex=0.7) 
usr <- par("usr") 
par(usr=c(usr[1:2], -1, 20)) 
plotCI(x,y=y2,uiw=delta,xaxt="n",gap=0,add=TRUE,col='red') 
axis(4,col.ticks ='red') 

enter image description here

작동
+0

! 덕분에 – agatha

+0

@ agstudy- 그러나 함수는 여전히 새로운 ylim 또는 ylab 매개 변수에 대해 두 번째 plotCI 호출에 "응답하지 않습니다."이것은 매우 이상합니다. – agatha

+1

@agatha 제 편집 내용을 볼 수 있습니다 : 'usr' 매개 변수를 다시 정의합니다 . 'lattice' 패키지를 사용하면 더 나은 결과를 얻을 수 있습니다. – agstudy