我有一段代码,用于从数据集中生成多个图。数据集根据可视化所需的参数进行过滤,并使用ggplot
进行绘制。
library(ggplot2)
summary <- filter(dataframe)
plot <- ggplot(summary)
现在,我有多个代码块用于过滤每种类型的图形,并且每个块都有一个“摘要”和“情节”。
有没有一种方法可以同时绘制多个称为“ plot”的函数?有没有一种方法可以创建一个用户界面/按钮,当单击该按钮时可以一次性生成所有图?
答案 0 :(得分:1)
如果每个图都具有相同的类型,但具有不同的数据,则可以将其写入一次,如@Victor Ordu建议使用循环或类似lapply
的方法将它们放在列表中或map()
包中的purrr
。
然后您可以使用ggpubr
package中的ggarrange
来安排它们。
例如:
library(tidyverse)
library(ggpubr)
# Plot function
example_plot <- function(x){
ggplot(x, aes(drat, wt)) +
geom_point()
}
# Summarise in a dataframe and plot into a list
graphs <- mtcars %>%
group_by(cyl) %>%
nest() %>%
mutate(graph = map(data, ~ example_plot(.x))) %>%
pull(graph)
# Plot them all!
ggarrange(graphs[[1]], graphs[[2]], graphs[[3]], ncol = 3)
否则,直接跳过即可进行整理。