如何从嵌套列表中提取每个ggplot2图

时间:2019-04-17 16:06:46

标签: r ggplot2

制作大型嵌套列表以跟踪使用ggplot2创建的图通常很方便。

例如,这是我如何在大量的图列表中存储少量图,以及主题和子主题的子列表。

summary_plots

  1. $Demographics
    • Demographics$Socioeconomic$Household_Income_Plot
    • Demographics$Socioeconomic$Education_Plot
    • Demographics$Age_Plot
  2. $Product_Usage
    • Purchase_Frequency_Plot
    • ....

如何从整个列表中提取所有ggplot2绘图对象?我希望能够创建一个“平面”的单层列表,其中包含原始列表中包含的所有图。


这是一个简单的示例列表:

generic_plot <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg)) 

summary_plots <- list() 
summary_plots$Demographics$Socioeconomic$Income <- generic_plot 
summary_plots$Demographics$Socioeconomic$Education <- generic_plot 
summary_plots$Demographics$Age <- generic_plot 
summary_plots$Product_Usage$Purchase_Frequency <- generic_plot

所需结果将等同于创建如下列表:

list('Demographics.Socioeconomic.Income' = generic_plot,
     'Demographics.Socioeconomic.Education' = generic_plot,
     ...)

1 个答案:

答案 0 :(得分:6)

通过The code written in this answer

@Michael,只需稍作修改即可实现。

如果我们将class行中的morelists <- ...复选框更改为仅在类包含'list'包含类{{1} },则它不会使图变平,并且将返回ggplots的平面列表。

'gg'