使用使用 lapply 的函数后如何获取 ggplot grobs?
How to get ggplot grobs after using a function that's using an lapply?
我正在尝试使用 lapply 排列从函数生成的 grob,但是尝试传递到 gList 的数据多于网格函数可以使用的数据,这里有一些可重现的代码:
library(dplyr)
library(gridExtra)
split_ex <- mtcars %>% split(cyl)
list_ex <- unique(mtcars$cyl)
test_plot <- function(dat){
subtest_plot <- function(type) {
ggplot(data=dat %>% filter(cyl==type)) +
geom_col(aes(y=mpg,x=disp)) +
labs(title=type)
}
lapply(list_ex, function(type) subtest_plot(type))
}
grid.arrange(test_plot(mtcars),ncols=2)
library(dplyr)
library(grid)
library(ggplot2)
library(gridExtra)
split_ex <- mtcars %>% split(cyl)
list_ex <- unique(mtcars$cyl)
test_plot <- function(dat){
subtest_plot <- function(type) {
ggplot(data=dat %>% filter(cyl==type)) +
geom_col(aes(y=mpg,x=disp)) +
labs(title=type)
}
lapply(list_ex, function(type) subtest_plot(type))
}
grid.newpage()
grid.draw(
arrangeGrob(grobs=test_plot(mtcars), ncol=2)
)
我正在尝试使用 lapply 排列从函数生成的 grob,但是尝试传递到 gList 的数据多于网格函数可以使用的数据,这里有一些可重现的代码:
library(dplyr)
library(gridExtra)
split_ex <- mtcars %>% split(cyl)
list_ex <- unique(mtcars$cyl)
test_plot <- function(dat){
subtest_plot <- function(type) {
ggplot(data=dat %>% filter(cyl==type)) +
geom_col(aes(y=mpg,x=disp)) +
labs(title=type)
}
lapply(list_ex, function(type) subtest_plot(type))
}
grid.arrange(test_plot(mtcars),ncols=2)
library(dplyr)
library(grid)
library(ggplot2)
library(gridExtra)
split_ex <- mtcars %>% split(cyl)
list_ex <- unique(mtcars$cyl)
test_plot <- function(dat){
subtest_plot <- function(type) {
ggplot(data=dat %>% filter(cyl==type)) +
geom_col(aes(y=mpg,x=disp)) +
labs(title=type)
}
lapply(list_ex, function(type) subtest_plot(type))
}
grid.newpage()
grid.draw(
arrangeGrob(grobs=test_plot(mtcars), ncol=2)
)