赞
踩
上次我们给大家介绍了用R的ggpubr包绘制各种散点图,今天我们继续学习ggpubr包绘制各种SCI发表级箱图。
`library(ggpubr)`
`library(patchwork)#如果没有安装要先安装`
`set.seed(123)#设种子数`
首先生成一个随机的数据集,该数据集有300个观测,3个变量(分别是A,sex,smokestatus)
`dataset=data.frame(A=c(rnorm(150,12,2), rnorm(150, 6,1)),`
`sex=sample(c("0","1"),300,replace=TRUE),`
`smokestatus=sample(c("1","2","3"),300,replace=TRUE))`
绘制简单箱图:(下面的加号表示拼接图形,如果不需要拼接,可以直接把加号去掉)
`ggboxplot(dataset, x = "smokestatus", y = "A",` `bxp.errorbar=T,#显示误差条` `width = 0.5,#箱体的宽度` `color = "smokestatus", #分组` `palette="aaas",#使用杂志aaas的配色` `)+` `ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.5, color = "smokestatus",` `palette="aaas",bxp.errorbar=T,` `orientation = "horizontal"#调整图形方向为水平` `)+` `ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.5,color = "smokestatus",` `palette="aaas",bxp.errorbar=T,` `notch = TRUE,#添加缺口` `order = c("3","2","1")#调整顺序` `)+` `ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.5, color = "smokestatus",` `palette="aaas",bxp.errorbar=T,` `select = c("3")#选择特定的水平来画图` `)`
绘制带散点的箱图
`ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.8,`
`add = "jitter",#添加图形元素`
`add.params=list(color = "smokestatus",size=0.8, shape = 23))#参数add的参数,可设置颜色`
绘制簇状箱图(横坐标表示smokestatus分组,不同颜色代表不同性别sex)
`ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.6,`
`color = "black",#轮廓颜色`
`fill="sex",#填充`
`palette =c("#E7B800", "#00AFBB"),#分组着色`
`xlab = F, #不显示x轴的标签`
`bxp.errorbar=T,#显示误差条`
`bxp.errorbar.width=0.5, #误差条大小`
`size=1, #箱型图边线的粗细`
`outlier.shape=NA, #不显示outlier`
`legend = "right") #图例放右边`
在箱图添加三组总体P值
`ggboxplot(dataset, x = "smokestatus", y = "A", width = 0.8,`
`add = "jitter",add.params=list(color = "smokestatus",size=0.5))+`
`stat_compare_means(method = "anova")`
两两比较
`my_comparisons <- list( c("1", "2"), c("1", "3"), c("3", "2") )`
`ggboxplot(dataset, x = "smokestatus", y = "A",`
`color = "smokestatus", palette = "npg")+`
`#两两比较的p值`
`stat_compare_means(comparisons = my_comparisons, label.y = c(18, 22, 26))+`
`#整体的p值`
`stat_compare_means(label.y = 28)`
固定某一组,其他与某组比较
`ggboxplot(dataset, x = "smokestatus", y = "A",`
`color = "smokestatus", palette = "npg")+`
`# 整体的p值`
`stat_compare_means(method = "anova", label.y = 28)+`
`stat_compare_means(method = "t.test", #选择统计方法`
`ref.group = "1"#以smokestatus为1的作为对照组`
`)`
分组/分面之后再做比较
`ggboxplot(dataset, x = "sex", y = "A",`
`color = "sex", palette = "npg",`
`add = "jitter",`
`facet.by = "smokestatus"#按照smokestatus分不同的面板`
`)+`
`#label中去掉检验方法`
`stat_compare_means(aes(label = paste0("p = ", ..p.format..)))`
今天箱图的学习到这。
欢迎大家关注我的微信公众号 统计练习题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。