今天遇到一个简单的报错,随手记录一下,数据就不展示了。报错代码如下:
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()
大功告成。