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

如何基于padj列的值在ggplot柱状图中添加显著性星号?

给柱状图添加显著性星号的解决方案

步骤1:生成显著性标签列

先基于padj的阈值生成对应的显著性星号,用dplyr的条件判断函数实现:

library(dplyr)
df <- df %>%
  mutate(signif_label = case_when(
    padj < 0.001 ~ "***",
    padj < 0.01 ~ "**",
    padj < 0.05 ~ "*",
    TRUE ~ ""  # 不显著的条目留空,若需标记为不显著可改为"NS"
  ))

步骤2:修改绘图代码添加星号

在原有ggplot代码中加入geom_text层,将星号放置在柱子的合适位置,根据log2FC的正负调整位置避免重叠:

library(ggplot2)

ggplot(data = df, aes(x = CancerType, y = log2FC, fill = Genes)) +
  geom_bar(stat = "identity", width = 0.7, show.legend = TRUE) +
  # 添加显著性星号
  geom_text(aes(label = signif_label),
            vjust = ifelse(df$log2FC > 0, -0.5, 1.5),  # 正值柱子上方放星号,负值柱子下方放星号
            size = 5,
            color = "black") +
  theme_bw() +
  facet_wrap(~ Genes) +
  theme(axis.text.x = element_text(size = 10, angle = 45, hjust = 1, colour = "black"))

补充说明

  • 若觉得星号位置不合适,可调整vjust的数值,或者直接指定固定偏移量,比如y = log2FC + 0.1(正值方向)或y = log2FC - 0.1(负值方向)。
  • 星号的大小可通过size参数调整,颜色通过color参数修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:24:29