16s rRNA

ggplot2自定义添加P值

2021-05-03  本文已影响0人  R语言数据分析指南

数据分析中通常都需要对数据进行统计检验,仿佛加个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值了!!当然还有一个案例,我们后面再介绍

上一篇下一篇

猜你喜欢

热点阅读