Я пытаюсь написать модульные тесты для функций, где я использую cowplot::plot_grid()
для объединения ggplot2
графиков. Например,
# setup
set.seed(123)
library(ggplot2)
# creating basic plots
p1 <- ggplot(aes(x = as.factor(am), y = wt), data = mtcars) +
geom_point() +
labs(title = "Dataset: mtcars", subtitle = "Source: `base` package")
p2 <- ggplot(aes(x = vore, y = brainwt), data = msleep) +
geom_point() +
labs(title = "Dataset: msleep", subtitle = "Source: `ggplot2` package")
# combined plot
(p <- cowplot::plot_grid(p1, p2, labels = c("(i)", "(ii)")))
#> Warning: Removed 27 rows containing missing values (geom_point).
Создано 05 января 2019 г. с помощью пакета reprex (v0.2.1)
Для ggplot2
графиков я могу построить график и извлечь эти детали.
# extracting title and subtitle (example with p1)
pb1 <- ggplot2::ggplot_build(p1)
pb1$plot$labels$title
#> [1] "Dataset: mtcars"
pb1$plot$labels$subtitle
#> [1] "Source: `base` package"
Но как я могу извлечь такие подробности об отдельных участках из объединенного сюжета?
совмещенный участок под застройку
pb <- ggplot2::ggplot_build(p)
Итак, например, как я могу извлечь субтитры для p1
из pb
?