之前有写数据可视化——R语言为ggplot图形添加P值和显著性水平,但是文章中没有给出两两比较时组别间连线的画法,今天就写这个问题,这些文章建议大家按顺序都看一遍。
示例数据
示例数据集:ToothGrowth
data("ToothGrowth")
head(ToothGrowth)
示例数据如下:
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
依然是第一篇文章的数据,今天要做的就是做不同组(不同dose)之前的len的值的比较,dose是有三个组的,所以今天要涉及到两两比较,最终我们的目标是要画出如下图形:
看操作
要用到的包为R语言中的ggplot2包和ggpubr包,包的安装下载部分默认略过。
#首先进行两两比较
compare_means(len ~ dose, data = ToothGrowth)
因为我们的分组变量dose本身就包含两个以上的水平,所以compare_means时两两比较的检验(pairwise test)会自动执行。默认方法为“wilcox.test”,也可设置为“t.test”。
可以从输出看,两两检验的结果都是显著的。
然后作图:
# 设定作图的组别
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco")+
stat_compare_means(comparisons = my_comparisons)+ # 加两两比较的P值
stat_compare_means(label.y = 50) # 加全局比较的P值
上面的代码中,我将所有两两比较的可能都列出来了,所以应该就会有三条连接线,如果你只想要dose=1这组和dose=0.5这组之间的线的话你就可以把第一行代码写出my_comparisons <- list( c("0.5", "1")),其余同理。
这儿再说一下palette = "jco“这个参数,这个是杂志Journal of Clinical Oncology的调色板。还有很多,这儿给大家放个图吧。
好,运行上面的代码,恭喜你,想要的图出来了:
小结
感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python和R的,加油。
(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)
往期内容: