ggplot2自定义添加P值
数据分析中通常都需要对数据进行统计检验,仿佛加个P值就能显得论文数据更加专业一点,本节不介绍如何计算P值,我们来介绍如何给图片自定义添加p值
library(tidyverse)library(reshape)library(ggsignif)
ggsingif来进行一个统计检验
可以看到ggsingif软件包轻松的给我们进行了统计分析并添加了P值,R中这种统计并自动添加p值的包又不少,后面会有详细的文档来介绍。那么既然有了这么好用的R包为何我们还要学习自定义添加P值那?因为你总有一些特殊的需求是这些R包满足不了的,下面通过一个简单的小例子来展示
ggplot(iris,aes(Species,Sepal.Length,fill=Species)) + geom_boxplot()+geom_jitter(shape=16,size=2,position=position_jitter(0.2))+ geom_signif(comparisons = list(c("versicolor", "virginica"), c("versicolor","setosa"), c("virginica","setosa")), map_signif_level=T, textsize=6,test=wilcox.test,step_increase=0.2)+ guides(fill=FALSE)+xlab(NULL)+theme_classic()
自定义线条位点
肉眼判断位点信息,当然还有更方便的方法,我们后面介绍
p_value1 <- tibble( x = c("Sepal.Length","Sepal.Length","Petal.Length","Petal.Length"), y= c(890,910,910,700))p_value2 <- tibble( x = c("Sepal.Width","Sepal.Width","Petal.Width","Petal.Width"), y=c(480,600,600,190))
此处有一个小细节就是group=1,如果去掉group=1,则代码只会绘制四条线
注:此处的1可以是任意数字,也可以是T,F
iris %>% melt() %>% ggplot(aes(variable,value))+ geom_col(width = 0.5)+ theme_classic()+ scale_y_continuous(limits = c(0,950), expand = c(0, 0))+ geom_line(data = p_value1, aes(x = x, y = y,group=1))+ geom_line(data = p_value2, aes(x = x, y = y,group=1))+ annotate("text", x = 2, y = 920, label = "***", size = 6, color = "#22292F")+ annotate("text", x = 3, y = 610, label = "**", size = 6, color = "#22292F")+ labs(x=NULL,y=NULL)+ theme(plot.margin = unit(rep(1,4), "cm"))
以后就可以挥洒自如的添加P值了!!当然还有一个案例,我们后面再介绍
作者:昵称已下线
链接:https://www.jianshu.com/p/e6dc477e37b8