基于两个共享Order列的数据集制作分组气泡图
分开展示两个数据集的气泡图实现方案
我拥有两个数据集,二者行完全一致,仅共享Order列,其余列均不相同。希望制作一张参考图样式的气泡图,将两个数据集分开展示,而非像现有代码那样用颜色区分各列。
数据集示例
data1
Order SFA14 SFB78 SFC88 W W 15 88 4 X X 100 15 4 Y Y 8 10 10 Z Z 12 0 15
data2
Order LA128 LBHY LCPP W W 100 10 17 X X 10 1000 540 Y Y 0 10 78 Z Z 87 154 895
现有代码(按变量颜色区分)
# 基于共同的Order列合并数据集 combined_data <- merge(data1, data2, by = "Order", all = TRUE) # 转换为长格式用于绘图 data_long <- combined_data %>% pivot_longer(cols = starts_with("SF") | starts_with("L"), names_to = "Variable", values_to = "Value") # 创建气泡图,用不同颜色区分每个变量 ggplot(data_long, aes(x = Order, y = Value, size = Value, color = Variable)) + geom_point(alpha = 0.7) + scale_size_continuous(range = c(5, 20)) + labs(title = "合并气泡图示例", x = "分类群", y = "数值", size = "数值", color = "变量") + theme_minimal() + theme(axis.text.x = element_text(angle = 45, hjust = 1))
现有代码生成的图表:所有变量的气泡集中在同一面板,通过颜色区分不同变量,无法直观区分两个数据集的整体差异。
期望效果:将两个数据集分别放在独立的子面板中,每个子面板展示对应数据集的所有变量气泡,便于对比两个数据集的分布。
解决方案代码
核心思路是给每个数据集添加标识列,合并后用分面(facet)功能将两个数据集分开绘制:
library(tidyverse) # 给每个数据集添加标识列,并转换为长格式 data1_long <- data1 %>% mutate(Dataset = "data1") %>% pivot_longer(cols = -Order, names_to = "Variable", values_to = "Value") data2_long <- data2 %>% mutate(Dataset = "data2") %>% pivot_longer(cols = -Order, names_to = "Variable", values_to = "Value") # 合并两个长格式数据集 combined_long <- bind_rows(data1_long, data2_long) # 绘制分面气泡图 ggplot(combined_long, aes(x = Order, y = Value, size = Value, color = Variable)) + geom_point(alpha = 0.7) + scale_size_continuous(range = c(5, 20)) + # 按数据集分面,每个数据集一个子图,Y轴刻度独立适配数据范围 facet_wrap(~Dataset, scales = "free_y") + labs(title = "分数据集气泡图", x = "分类群", y = "数值", size = "数值", color = "变量") + theme_minimal() + theme(axis.text.x = element_text(angle = 45, hjust = 1))
代码说明
- 添加数据集标识:通过
mutate(Dataset = "data1")给每个数据集打上标签,后续用于分面区分。 - 长格式转换:
pivot_longer(cols = -Order)将除Order外的列转为变量-数值对,适配ggplot的绘图逻辑。 - 分面设置:
facet_wrap(~Dataset, scales = "free_y")让两个子面板的Y轴刻度独立,避免因两个数据集数值范围差异大导致的展示失真。 - 样式延续:保留了原代码中的气泡透明度、大小范围和坐标轴倾斜样式,保证图表可读性。
内容的提问来源于stack exchange,提问作者Reda
相关产品推荐
相关产品推荐

