[英]Multiple graphs within plot with 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)
如果您不必使用lattice
,則可以只使用基本plot
,它可以根據需要工作。
p <- par(mfrow=c(2,2))
for(i in 2:5){
plot(y~rdata[,i],rdata)
}
par(p)
如果要使用lattice
查看此答案 。 萊迪思忽略par
,因此您必須做更多的工作才能實現所需的目標。
為了輕松排列一堆格子圖,我喜歡使用輔助函數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))
要得到
否則,通常可以在print語句中使用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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.