我想通过使用循环来绘制一堆变量,并且par(ask=T)
只需在每次单击鼠标后更新绘图。
以下代码使用plot()
函数正常工作:
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)
但是,如果我运行相同的代码并使用qplot()
而不是plot()
,则绘图窗口永远不会更新。
任何想法为什么或解决方法?
答案 0 :(得分: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)