2017-07-11 28 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()及其替代方法,以避免在列名称上出现尴尬循环