R中将来自两个数据框df1和df2但有相同映射的分面图将其中一个分面图分开成相应的小图镶嵌到另一个分面图相应分面的右上角
可以使用ggplot2和gridExtra包来实现这个任务。首先,需要将df1和df2合并成一个数据框,并添加一个变量来标识数据来自哪个数据框。然后,可以使用facet_grid()函数来创建分面图,其中使用“.”作为公式中的变量名表示将分面图按照该变量分组。最后,使用grid.arrange()函数将两个分面图组合在一起。
以下是一个示例代码:
library(ggplot2)
library(gridExtra)
# 创建示例数据框
df1 <- data.frame(x = rnorm(100), y = rnorm(100))
df2 <- data.frame(x = rnorm(100), y = rnorm(100))
# 添加一个变量来标识数据来自哪个数据框
df1$source <- "df1"
df2$source <- "df2"
# 合并数据框
df <- rbind(df1, df2)
# 创建第一个分面图
p1 <- ggplot(df, aes(x, y)) +
geom_point() +
facet_grid(source ~ .)
# 创建第二个分面图
p2 <- ggplot(df2, aes(x, y)) +
geom_point() +
facet_grid(. ~ source)
# 将第一个分面图中的一个分面镶嵌到第二个分面图中相应分面的右上角
p2 <- p2 + annotation_custom(ggplotGrob(p1 + theme_void()), xmin = 0.6, xmax = 1, ymax = 1, ymin = 0.6)
# 组合两个分面图
grid.arrange(p1, p2, ncol = 2)
这将创建一个包含两个分面图的图形,其中第一个分面图被镶嵌到第二个分面图中相应分面的右上角。
原文地址: https://www.cveoy.top/t/topic/65Y 著作权归作者所有。请勿转载和采集!