簡體   English   中英

用mapply繪制多個圖

[英]Making multiple plots with mapply

我做了以下數據框df

V1 <- 1:10
V2 <- 11:20
V3 <- 21:30
V4 <- 31:40
df <- data.frame(V1,V2,V3,V4)

我還創建了一個函數,該函數應基於參數var1var2進行簡單的散點圖繪制。

 ScatterPlot <- function(var1, var2) {
     ggplot(data = df,
     aes(x = var1, y = var2)),
     environment = environment() +
     geom_point()
 }

對於以下變量組合,我只想要2個特定的散點圖: v1-v2v3-v4

我認為mapply在這里會派上用場,遍歷變量的不同組合。

mapply(FUN = ScatterPlot,
       var1 = c(V1, V3),
       var2 = c(V2, V4))

我只希望有2個地塊,但這是我得到的:

在此處輸入圖片說明

我認為問題出在以下事實:函數正在df中尋找一個名為“ var1”的變量。 我不知道ggplots足以解決這個問題,但是,使用基本R圖,您可以執行以下操作:

baseplot <- function(var1, var2){
    plot(df[,var1], df[,var2], pch=19)
}
par(mfrow=c(1, 2))
mapply(baseplot, c("V1", "V3"), c("V2", "V4"))

在此處輸入圖片說明

編輯
使用ggplot並放置參數environment=environment() ,添加print並使用變量名(在引號之間)似乎可行:

 ScatterPlot <- function(var1, var2) {
     print(ggplot(data = df,
     aes(x = df[,var1], y = df[,var2]),
     environment = environment()) +
     geom_point())
 }

mapply(ScatterPlot, var1=c("V1", "V3"), var2=c("V2", "V4"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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