2014-07-11 8 views
0

loop가있는 한 플롯 내에서 data.frame의 각 열에 대한 그래프를 얻는 방법은 무엇입니까? 반드시 쉽게 알아낼 수 없어야합니다.루프가있는 플롯 내의 여러 그래프

샘플 데이터 :

rdata <- data.frame(y=rnorm(1000,2,2),v1=rnorm(1000,1,1),v2=rnorm(1000,3,3), 
        v3=rnorm(1000,4,4),v4=rnorm(1000,5,5)) 

나는 시도 무엇입니까?

library(lattice) 

p <- par(mfrow=c(2,2)) 
for(i in 2:5){ 
w <- xyplot(y~rdata[,i],rdata) 
print(w) 
} 
par(p) 

답변

2

방금 ​​대신 기본 plot을 사용할 수 있습니다 당신이 원하는대로 작동합니다 lattice을 사용하지 마십시오.

enter image description here

당신이 lattice를 사용하려면

p <- par(mfrow=c(2,2)) 
for(i in 2:5){ 
    plot(y~rdata[,i],rdata) 
} 
par(p) 

answer을 찾습니다. 격자는 par을 무시하므로 원하는 것을 얻기 위해 더 많은 작업을해야합니다.

+0

감사를 할 수있는, 그래 나는 그것이 plot''와 함께 작동 알고 있지만 난 그렇게 다른 레이아웃/설정에 지금은 변경할 수 없습니다 격자 지금까지 모든 일을했다. 나는 당신의 참고를 조사 할 것이다. 감사! – Maximilian

2

많은 격자 플롯을 쉽게 정렬하려면 헬퍼 함수 print.plotlist을 사용하고 싶습니다. 기본 그래픽에 대해 layout() 기능처럼 작동하는 layout= 매개 변수가 있습니다. 예를 들어,

rdata <- data.frame(y=rnorm(1000,2,2),v1=rnorm(1000,1,1),v2=rnorm(1000,3,3), 
        v3=rnorm(1000,4,4),v4=rnorm(1000,5,5)) 

library(lattice) 
plots<-lapply(2:5, function(i) {xyplot(y~rdata[,i],rdata)}) 
print.plotlist(plots, layout=matrix(1:4, ncol=2)) 

enter image description here

그렇지 않으면 당신이 일반적으로 장치의 하위 섹션에 플롯을 배치 인쇄 문에 split= 매개 변수를 사용하여 얻을 수 호출 할 수 있습니다. 예를 들어, 당신은 또한

print(plots[[1]], split=c(1,1,2,2), more=T) 
print(plots[[2]], split=c(1,2,2,2), more=T) 
print(plots[[3]], split=c(2,1,2,2), more=T) 
print(plots[[4]], split=c(2,2,2,2)) 
+0

그 동안 나는 그것을 알아 냈습니다. 그러나 이것은 제가 배울 수있는 다른 접근법입니다. 감사! – Maximilian