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

Plotting a collection of variables on a grid in R

我想学习一种将变量集合 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]) 在网格中绘制每个图形。

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

请注意,您的策略可以进行一些改进:

  • 预分配 pp = vector(length = ncol(df)-1, mode="list")
  • 会更好
  • p[[i]] <- 不是 p[i] <-
  • 1:3 - 1 生成 0 1 2,而 0 不是有效索引
  • 在 ggplot/R 中处理长格式数据框(整齐的数据)更容易;尝试 reshape2::melt()tidyr::gather() 和替代方案,这样您就可以避免在列名
  • 上出现尴尬的循环