如何在单个绘图中创建3个散点图?(R语言ggplot2实现)
解决方案
要把这三个散点图(女性组、男性组、整体组)合并到单个绘图中,推荐用patchwork包,它专门用来拼接ggplot图形,操作简单直观。
步骤1:安装并加载所需包
如果没装过patchwork,先执行安装命令:
install.packages("patchwork")
然后加载所有需要的包:
library(dplyr) library(ggplot2) library(patchwork)
步骤2:分别创建三个图形对象
先把三个单独的散点图存成变量,方便后续拼接:
# 女性组散点图 p_f <- kat %>% filter(Sex %in% c("F")) %>% ggplot(aes(x = Bwt, y = Hwt)) + geom_point() + labs(title = "女性组") + facet_wrap("Sex") # 男性组散点图 p_m <- kat %>% filter(Sex %in% c("M")) %>% ggplot(aes(x = Bwt, y = Hwt)) + geom_point() + labs(title = "男性组") + facet_wrap("Sex") # 整体组散点图 p_all <- kat %>% ggplot(aes(x = Bwt, y = Hwt)) + geom_point() + labs(title = "整体组") + facet_wrap("Sex")
步骤3:拼接图形
用patchwork的简洁语法就能完成拼接:
- 排成一行:
p_f + p_m + p_all
- 排成一列:
p_f / p_m / p_all
- 自定义布局(比如前两个占一行,第三个单独占一行):
(p_f + p_m) / p_all
这样就能在同一个画布上得到三个散点图,无需分别绘制后手动拼接。
内容的提问来源于stack exchange,提问作者Flems
相关产品推荐
相关产品推荐

