[英]Multiple plots in R using loop
我有兩個數據集。 一個帶有舊觀測值,另一個帶有新觀測值,我想在不同的繪制窗口中相互繪制這些圖。 我必須做幾個圖,但是我不知道如何進行循環。 我嘗試過這樣的事情:
pltName <-paste("p", 1:25, sep="")
for (i in 1:25){
pltName[i] <- qplot(dfOld[i], dfNew[i], geom = "point")
}
但這是行不通的。
數據幀如下所示:
dfOld:
Old1 Old2 Old3 Old4 .... Old25
21.0 6 160 110 ....
21.0 6 160 110 ....
22.8 4 108 93 ....
dfNew:
New1 New2 New3 New4 .... New25
22.0 5 150 180 ....
23.0 6 162 100 ....
21.8 5 103 90 ....
使用一列值和第二列來創建data.frame,源值來自於此。
library(ggplot2)
xy <- data.frame(x = runif(20), y = runif(20), source = rep(letters[1:2], each = 10))
ggplot(xy, aes(x = x, y = y, color = source)) +
theme_bw() +
geom_point()
另外,如果您希望每個來源都有一個方面,請嘗試
ggplot(xy, aes(x = x, y = y)) +
theme_bw() +
geom_point() +
facet_wrap(~ source)
您需要將圖存儲在列表中,然后在該列表上使用grid.arrange
plots <- vector("list", length(dfOld))
p <- qplot(dfOld[, 1], dfNew[, 1], geom = "point")
for (i in seq_along(plots))
plots[[i]] <- p %+% aes_q(x = dfOld[, i], y = dfNew[, i])
do.call(grid.arrange, plots)
更好的方法是使用Map
:
plots <- Map(qplot, x = dfOld, y = dfNew, geom = "point")
do.call(grid.arrange, plots)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.