大家对ggplot应该很熟悉,那么围绕ggplot也开发了很多辅助的包,今天给大家介绍下如何在我们绘制的图像上简单的标注差异信息,比如P值、倍数差等。那么需要用到包ggsignif。首先看下安装:
代码语言:javascript复制install.packages("ggsignif")
那么既然是差异分析,那么我们需要看下这个包所提供的分析的方法包括:t.test(), wilcox.test(), aov()/anova(), kruskal.test()。
接下来通过实例来看下具体的参数设置:
代码语言:javascript复制##载入包
library(ggplot2)
library(ggsignif)
##基础的绘制
ggplot(mpg,aes(class, hwy))
geom_boxplot()
geom_signif(comparisons = list(
c("compact", "pickup"),
c("subcompact", "suv")
))
代码语言:javascript复制#将P值进行完善
ggplot(mpg,aes(class, hwy))
geom_boxplot()
geom_signif(
comparisons = list(
c("compact","pickup"),
c("subcompact","suv")
),
map_signif_level = function(p) sprintf("p= %.2g", p)
)
代码语言:javascript复制###具体位置的两组之间信息标注。Y_position是指的横线的位置;xmin和xmax组合对应两组的位置(3,5)(1,4)
ggplot(mpg,aes(class, hwy))
geom_boxplot()
geom_signif(
annotations = c("First","Second"),
y_position = c(30, 40), xmin = c(3, 1),xmax = c(5, 4)
)
代码语言:javascript复制##P值的星号标注。c("***"=0.001, "**"=0.01,"*"=0.05)
ggplot(iris,aes(x = Species, y = Sepal.Length))
geom_boxplot() # using `ggsignif` todisplay comparison of interest
geom_signif(
comparisons =list(c("versicolor", "virginica")),
map_signif_level = TRUE
)
代码语言:javascript复制##去除连接的竖线,或者增加长度
ggplot(iris,aes(x = Species, y = Sepal.Length))
geom_boxplot() # using `ggsignif` todisplay comparison of interest
geom_signif(
comparisons =list(c("versicolor", "virginica")),
map_signif_level = TRUE,tip_length = 0
)
至此这个包的主要参数都已展示,当然这只是一些简单的基础图,真正在需要的时候可以美化后在进行标记组间信息。
欢迎大家学习交流!