簡體   English   中英

R中使用循環的多個圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM