【问题标题】:extract plots from list R从列表 R 中提取图
【发布时间】:2021-05-12 08:33:44
【问题描述】:

我做了一个函数:

mtcars_plot_fun <- function(cyl_in, gear_in) {
  car_data <- mtcars %>%
    filter(cyl == cyl_in,
           gear == gear_in)
  p <- car_data %>% ggplot(aes(x = disp, y = qsec, fill = gear)) +
    geom_point() 
  print(p)
}

然后是一个循环,生成图并将它们存储在列表对象gg_obj

cyls <- c(4, 6)

gears <- c(3, 4)

for (cyl in cyls) {
  for (gear in gears) {
    gg_obj <- mtcars_plot_fun(cyl_in = cyl, gear_in = gear)
    }
}

现在我想从gg_obj 中提取我需要的图,并使用grid.arrange()gridExtra 或类似的方法来绘制它们。 如何提取我想要的图,并将它们存储为独特的对象以在网格中绘制?

【问题讨论】:

  • 如果gg_obj 有多个ggplots,那么gg_obj[[1]] 应该给你第一个情节。
  • 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example
  • 问题已更新为体面的代表,谢谢

标签: r list ggplot2 gridextra


【解决方案1】:

您可以使用do.call 将您的绘图列表用作grid.arrange 的参数。

例如:

do.call(grid.arrange, list.of.plots, ncol=2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2017-06-10
    • 2021-02-21
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多