如何解决geom_signif 如何在对数 y 轴上绘制 p 值标签
按照回答 here 的逻辑,我应该能够将 p 值比较添加到图中。 Woudl 非常感谢任何关于我的解决方案做错了什么的帮助反馈。
library(magrittr)
library(ggsignif)
library(ggpubr)
value<-c(0,0.000273200055869626,0.000391899951754252,7.79999691577276e-06,0.000341800044604173,0.000160399989889521,0.00014739991923847,0.000200399960107021,6.35000054462966e-05)
condition<-c("E","E","R","S","S")
species<-rep('B_theta',length(condition))
df <- data.frame(value,condition,species)
bact <- compare_means(value~condition,data = df,method = 't.test') %>%
bact <- bact %>% mutate(y_pos = c(-3.5,-3.25,-3),labels = ifelse(p < 0.1,p.format,p.signif))
bact
.y. group1 group2 p p.adj p.format p.signif method y_pos labels
value E R 0.04859346 0.15 0.049 * T-test 3.50 0.049
value E S 0.11168959 0.22 0.112 ns T-test 3.25 ns
value R S 0.26876159 0.27 0.269 ns T-test 3.00 ns
p <- ggboxplot(df,x = "condition",y = "value",color = "condition",palette = "jco",add = "jitter")+
geom_signif(textsize=6,tip_length = 0.01,xmin=bact$group1,xmax=bact$group2,annotations=bact$labels,y_position=bact$y_pos)+
scale_y_log10(limits=c(NA,0.001))+annotation_logticks(sides = "l")
Warning message:
"Transformation introduced infinite values in continuous y-axis"Warning message:
"Transformation introduced infinite values in continuous y-axis"Warning message:
"Transformation introduced infinite values in continuous y-axis"Warning message:
"Removed 29 rows containing non-finite values (stat_boxplot)."Warning message:
"Removed 29 rows containing non-finite values (stat_signif)."
解决方法
这不是一个优雅的解决方案,从数学的角度来看也是不正确的。无论如何,这是代码。零被任意设置为 10^(-6)。也许这个技巧可以帮助你重新考虑问题。
value <- c(0,0.000273200055869626,0.000391899951754252,7.79999691577276e-06,0.000341800044604173,0.000160399989889521,0.00014739991923847,0.000200399960107021,6.35000054462966e-05)
condition <- c("E","E","R","S","S")
species <- rep('B_theta',length(condition))
df <- data.frame(value,condition,species)
bact <- compare_means(value~condition,data = df,method = 't.test')
bact <- bact %>% mutate(y_pos = c(-3,-2.75,-2.5),labels = ifelse(p < 0.1,p.format,p.signif))
df$value[df$value==0] <- 10^(-6)
p <- ggboxplot(df,x = "condition",y = "value",color = "condition",palette = "jco",add = "jitter")+
geom_signif(textsize=6,tip_length = 0.01,xmin=bact$group1,xmax=bact$group2,annotations=bact$labels,y_position=bact$y_pos)+
scale_y_continuous(trans = scales::log10_trans(),breaks=10^c(-6,-5,-4,-3),labels=c("0","1e-05","1e-04","1e-03")) +
annotation_logticks(sides = "l")
p
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。