2012-10-29 4 views
1

루프를 사용하여 서로에 대해 많은 변수를 플롯하고 각 마우스 클릭 후 플롯을 업데이트하기 위해 par(ask=T)을 지정하려고합니다. 나는 동일한 코드를 실행하고 qplot() 대신 plot(), 플롯 창 결코 업데이트를 사용하는 경우qplot/ggplot2를 사용하여 반복

require(ggplot2) 
df1 <- data.frame(id=seq(1,10,1) 
    ,col1 = runif(10) 
    ,col2 = runif(10) 
    ,col3 = runif(10) 
    ,col4 = runif(10) 
    ,col5 = runif(10) 
    ,col6 = runif(10) 
    ,col7 = runif(10) 
    ,col8 = runif(10) 
    ,col9 = runif(10) 
    ,col10 = runif(10) 
    ) 

par(ask=TRUE) 
for(i in 2:9){ 
colName2 <- paste("col",i,sep="") 
plot(df1$col1, df1[,colName2]) 
flush.console() 
} 
par(ask=FALSE) 

:

다음 코드는 plot() 기능을 사용하여 작동합니다.

이유 또는 해결 방법은 무엇입니까?

답변

3

ggplot2 그래프는 qplot (또는 ggplot)을 호출하면 표시되지 않습니다. 이 함수에 의해 반환 된 값이 출력 될 때 (명령 행에서 실행될 때 기본적으로), 그려진 그림이 그려진다. 루프 내에서 함수의 반환 값은 기본적으로 인쇄되지 않으므로 아무 것도 표시되지 않습니다. 명시 적으로 인쇄하면 표시됩니다.

이 내용은 R FAQ 7.22에 있습니다.

par(ask=TRUE) 
for(i in 2:9){ 
    colName2 <- paste("col",i,sep="") 
    print(qplot(df1$col1, df1[,colName2])) 
    flush.console() 
} 
par(ask=FALSE) 
+0

완전 감사합니다. – screechOwl

관련 문제