2017-07-11 30 views
0

我想了解一個將變量集合p(數據框列)繪製到網格中的好方法,而不是將每個變量寫出到grid.arrange函數中。在R中繪製一個網格變量集合

p <- c() 
for (i in 1:length(names(df)) - 1){ 
    p[i] <- qplot(df[i]) 
} 
grid.arrange(p, ncol = 5) 

我想要一個方法:grid.arrange(p[1], p[2], ..., p[n])在網格中繪製每個圖。

回答

0
pl = replicate(5, ggplot(), simplify = FALSE) 
grid.arrange(grobs = pl) 

請注意,您的策略可以使用一些改進:

  • 預分配p將與p = vector(length = ncol(df)-1, mode="list")
  • p[[i]] <-p[i] <-
  • 1:3 - 1產生0 1 2更好,0是不是有效索引
  • 它更容易與l ggplot/R中的格式數據幀(整型數據)請嘗試reshape2::melt()tidyr::gather()及其替代方法,以避免在列名稱上出現尷尬循環