R语言有序气泡图绘制:如何按mut分组排列同组Pass气泡
实现同一突变类型下传代气泡的同行排列
不需要依赖circleProgressiveLayout的随机布局,直接用ggplot2就能精准控制气泡的排列位置,满足你同一mut(突变类型)下P1、P2、P3气泡在同一行的需求,具体步骤如下:
1. 准备工作与数据预处理
首先加载所需包,并确保Pass列按P1→P2→P3的顺序显示:
library(ggplot2) # 将Pass转换为有序因子,固定显示顺序 df$Pass <- factor(df$Pass, levels = c("P1", "P2", "P3"))
2. 绘制布局可控的气泡图
利用geom_point实现按行排列的气泡,核心是将mut映射到y轴(同一突变类型共享同一y值,即同一行),Pass映射到x轴(不同传代在同一行的不同位置),freq控制气泡大小,col指定气泡颜色:
ggplot(df, aes(x = Pass, y = mut)) + # 绘制气泡,size映射freq,color直接使用col列的颜色值 geom_point(aes(size = freq, color = I(col)), alpha = 0.8) + # 调整气泡大小的范围,避免过大或过小 scale_size(range = c(3, 10)) + # 自定义主题,优化显示效果 theme_bw() + theme( axis.title.y = element_text(angle = 0, vjust = 0.5), panel.grid.major = element_blank(), legend.position = "right" ) + labs( x = "传代", y = "突变类型", size = "频率" )
代码说明
aes(x = Pass, y = mut):直接定义布局逻辑,同一mut的所有样本会落在y轴的同一刻度位置(即同一行),不同Pass对应x轴的不同位置。color = I(col):直接使用数据框中col列的十六进制颜色值,无需额外颜色映射。scale_size(range):根据你的数据范围调整气泡的最小和最大尺寸,适配实际需求。
这样绘制出的气泡图,每个突变类型对应的P1、P2、P3气泡会整齐排列在同一行,完全符合你的布局要求。
内容的提问来源于stack exchange,提问作者Paolo Lorenzini
相关产品推荐
相关产品推荐

