ggsignif报错:Can only handle data with groups that are plotted on the x-axis

文章讲述了在使用R语言ggplot2包进行数据可视化时遇到的一个错误,即`geom_signif`无法处理不在x轴上的分组数据。作者通过排查发现是由于在`geom_boxplot`中定义了映射关系导致的问题,并提供了两种修正方法,确保`geom_signif`能正确读取数据。修复后的代码使得图表能够正确显示比较显著性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个简单的报错,随手记录一下,数据就不展示了。报错代码如下:

compaired <- list(c("lfmm","genome"),
              c("rda","lfmm"),
              c("ad", "rda"),
              c("rda","genome"),
              c("ad","lfmm"),
              c("ad","genome"))

ggplot(plotdata)+
    geom_boxplot(aes(x=group,y=fst,fill=group))+
    geom_signif(comparisons = compaired,
                step_increase = 0.1,
                map_signif_level = T,
                test = wilcox.test)+
    scale_fill_manual(values = c('#FFA397','#FF847CFF','#D15657FF','#96281BFF'))+
    theme_bw()


Error in f(...) : 
  Can only handle data with groups that are plotted on the x-axis

简单排查之后发现映射关系被我写在了geom_boxplot()里面,因此geom_signif()无法读取数据,正确的写法应该如下:

compaired <- list(c("lfmm","genome"),
              c("rda","lfmm"),
              c("ad", "rda"),
              c("rda","genome"),
              c("ad","lfmm"),
              c("ad","genome"))
##写法1
ggplot(plotdata,aes(x=group,y=fst,fill=group))+
   geom_boxplot()+
   scale_fill_manual(values = c('#FFA397','#FF847CFF','#D15657FF','#96281BFF'))+
   geom_signif(comparisons = compaired,
               step_increase = 0.1,
               map_signif_level = F,
               test = wilcox.test)+
   theme_bw()

##写法2
ggplot(plotdata)+
   geom_boxplot(aes(x=group,y=fst,fill=group))+
   scale_fill_manual(values = c('#FFA397','#FF847CFF','#D15657FF','#96281BFF'))+
   geom_signif(aes(x=group,y=fst,fill=group),
               comparisons = compaired,
               step_increase = 0.1,
               map_signif_level = F,
               test = wilcox.test)+
   theme_bw()

 大功告成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值