如何为GO富集分析气泡图设置自定义p-value刻度区间?
解决GO富集分析气泡图padj颜色刻度区间控制问题
你需要把GO富集分析气泡图中padj(校正后p值)的颜色刻度区间限定在0.001到0.1之间,之前用breaks参数没生效,核心是要结合limits参数固定颜色映射的范围,同时修正代码里的列名匹配问题,以下是修改后的完整代码:
ggplot(data=Try2, aes(x=Gene_Ratio, y=reorder(Description, Gene_Ratio), color=padj, size=Counts)) + geom_point() + scale_color_gradient(low="red", high="blue", # 锁定padj的颜色映射范围 limits = c(0.001, 0.1), # 设置要显示的刻度点 breaks = c(0.001, 0.01, 0.05, 0.1), # 给刻度点设置清晰的标签 labels = c("0.001", "0.01", "0.05", "0.1")) + theme_bw() + ylab("功能描述") + xlab("基因比率") + ggtitle("GO富集分析 - 前30个差异基因(上调+下调)")
关键参数说明:
limits = c(0.001, 0.1):强制将颜色映射的padj范围固定在你需要的区间内,单独用breaks不会生效就是因为没限定这个核心范围- 如果你的数据里有padj小于0.001或大于0.1的基因,可以加上
oob = scales::squish参数,把超出范围的值压缩到边界颜色,避免显示异常,修改后的颜色刻度部分如下:
scale_color_gradient(low="red", high="blue", limits = c(0.001, 0.1), breaks = c(0.001, 0.01, 0.05, 0.1), labels = c("0.001", "0.01", "0.05", "0.1"), oob = scales::squish)
另外注意修正了代码里的列名错误:原代码中x=GeneRatio对应数据集的Gene_Ratio,size=Count对应数据集的Counts,不修正会导致绘图失败。
内容的提问来源于stack exchange,提问作者KenH
相关产品推荐
相关产品推荐

