在R中绘制网格上的变量集合

时间:2017-07-11 21:37:15

标签: r gridextra

我想学习一种将变量p(数据帧列)集合绘制到网格中的好方法,而不是将每个变量写入grid.arrange函数。

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])在网格中绘制每个图形。

1 个答案:

答案 0 :(得分: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 20不是有效索引
  • 在ggplot / R中使用长格式数据帧(整洁数据)更容易;尝试reshape2::melt()tidyr::gather()和替代方案,这样就可以避免对列名称进行尴尬的循环