You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言ggplot2气泡图实现结合阈值参考的连续颜色梯度配置

富集分析气泡图适配实现

调整逻辑

  • 完全保留第一版的单x轴布局:所有气泡沿固定x值垂直排布,不会像第二版那样按p_value横向分散打乱布局
  • 修正原第一版的映射缺陷:移除硬编码的阈值分色逻辑,将p_value作为连续颜色变量嵌入ggplot美学映射层,才能触发连续色阶效果
  • 严格匹配原有规则:气泡尺寸绑定abs(p_value)计算大小、保留Pathway字段的防遮挡标签标注

可直接运行的完整代码

# 需提前加载依赖包:dplyr、ggplot2、ggrepel
library(dplyr)
library(ggplot2)
library(ggrepel)

df %>%
  # 保留原逻辑:生成统一x值,实现所有气泡同列排布
  mutate(X_value = "Term") %>%
  ggplot(aes(x = X_value, y = p_value)) +
  geom_point(aes(
    color = p_value,
    size = abs(p_value)
  )) +
  geom_label_repel(aes(label = Pathway), size = 3) +
  # 连续色阶配置,可自由替换配色方案
  scale_color_gradientn(colours = rainbow(5)) +
  theme(
    axis.title = element_text(face = "bold"),
    axis.text = element_text(face = "bold")
  ) +
  labs(
    y = NULL,
    x = NULL,
    color = "p_value",
    size = "p_value"
  )

细节说明

  • 原第一版代码的两个核心问题:一是无法触发连续色——把color = case_when(...)写在geom_point的aes参数外部,属于给所有点分配静态固定颜色,没有把p_value变量传入ggplot的映射系统,因此后续色阶配置不会生效;二是原阈值分色逻辑存在覆盖漏洞,当前数据集内的p_value全部小于6,原本的离散分色规则实际不会生效
  • 若觉得彩虹色配色辨识度不足,可将scale_color_gradientn(colours = rainbow(5))替换为科研绘图常用的连续配色,比如scale_color_viridis_c(),视觉柔和且色盲友好
  • 如果标签出现严重遮挡,可在geom_label_repel中补充参数优化布局,比如设置box.padding = 0.6、max.overlaps = 10调整标签避让范围

内容的提问来源于stack exchange,提问作者PesKchan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 10:45:03