要在 R 中使用 ggplot 制作分面图并在分面图上嵌套小图,可以使用 ggplot2 包中的 facet_grid 函数和 gridExtra 包中的 grid.arrange 函数。

首先,我们需要创建一个数据集并使用 facet_grid 函数创建一个分面图。以下是一个示例数据集和分面图代码:

library(ggplot2)

# Create example dataset
data <- data.frame(x = rep(1:10, 2), y = c(rnorm(10, 0, 1), rnorm(10, 1, 1)), 
                   group = rep(c('A', 'B'), each = 10), sub_group = rep(c('C', 'D'), each = 5))

# Create facet plot
p1 <- ggplot(data, aes(x = x, y = y)) + 
  geom_point() + 
  facet_grid(group ~ ., scales = 'free_y')

接下来,我们可以使用 gridExtra 包中的 grid.arrange 函数将小图嵌套在大图的右上角。以下是一个示例代码:

library(gridExtra)

# Create small facet plots
p2 <- ggplot(data[data$sub_group == 'C', ], aes(x = x, y = y)) + 
  geom_point() + 
  facet_grid(sub_group ~ ., scales = 'free_y') + 
  theme_void()

p3 <- ggplot(data[data$sub_group == 'D', ], aes(x = x, y = y)) + 
  geom_point() + 
  facet_grid(sub_group ~ ., scales = 'free_y') + 
  theme_void()

# Combine plots using grid.arrange
grid.arrange(p1, 
             arrangeGrob(p2, p3, ncol = 2, widths = c(2, 1)), 
             ncol = 2, widths = c(4, 1))

在此示例中,我们首先使用 facet_grid 函数创建了一个分面图 p1。然后,我们使用 ggplot 和 facet_grid 函数创建了两个小分面图 p2 和 p3。最后,我们使用 grid.arrange 函数将三个图组合在一起,并将小分面图放在大分面图的右上角。

结果如下所示:

faceted_plot_with_nested_facets.png

在此示例中,我们使用了 gridExtra 包中的 arrangeGrob 函数将两个小图组合在一起,并使用 grid.arrange 函数将它们与大图组合在一起。我们还使用了 ncol 和 widths 参数来指定输出中的列数和每列的宽度。

R 中使用 ggplot 创建分面图并嵌套小图:分面图中右上角嵌入分面图

原文地址: https://www.cveoy.top/t/topic/murG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录