在 r 中通过 ggpubr 在箱形图中添加方差分析测试结果
adding anova test result in box plot by ggpubr in r
我的数据如下,我想绘制一个多箱线图,并在图中显示方差分析测试结果。
> combined
SampleID chao1 Samples Sgroup Bgroup Duration
1 BSS21 1275.1071 BSS20 BSS S 20d
2 BSS22 1575.4972 BSS20 BSS S 20d
3 BSS23 1381.2963 BSS20 BSS S 20d
4 BSS41 1090.0254 BSS40 BSS S 40d
5 BSS42 1103.6522 BSS40 BSS S 40d
6 BSS43 1065.7177 BSS40 BSS S 40d
7 BSS61 1077.8776 BSS60 BSS S 60d
8 BSS62 1123.5759 BSS60 BSS S 60d
9 BSS63 1201.3571 BSS60 BSS S 60d
10 BSW21 937.0231 BSW20 BSW W 20d
11 BSW22 970.0462 BSW20 BSW W 20d
12 BSW23 1070.1560 BSW20 BSW W 20d
13 BSW41 1894.8606 BSW40 BSW W 40d
14 BSW42 1825.0271 BSW40 BSW W 40d
15 BSW43 1869.3494 BSW40 BSW W 40d
16 BSW61 1332.4078 BSW60 BSW W 60d
17 BSW62 1354.4593 BSW60 BSW W 60d
18 BSW63 1365.2961 BSW60 BSW W 60d
19 BW21 1533.9137 BW20 BW W 20d
20 BW22 1643.1564 BW20 BW W 20d
21 BW23 1572.8900 BW20 BW W 20d
22 BW41 1678.0270 BW40 BW W 40d
23 BW42 1596.9105 BW40 BW W 40d
24 BW43 1684.8433 BW40 BW W 40d
25 BW61 1060.2059 BW60 BW W 60d
26 BW62 1127.0738 BW60 BW W 60d
27 BW63 1097.7083 BW60 BW W 60d
28 SS21 1751.0145 SS20 SS S 20d
29 SS22 1662.5932 SS20 SS S 20d
30 SS23 1806.3628 SS20 SS S 20d
31 SS41 1302.9245 SS40 SS S 40d
32 SS42 1126.5082 SS40 SS S 40d
33 SS43 1122.6136 SS40 SS S 40d
34 SS61 1429.4972 SS60 SS S 60d
35 SS62 1402.5714 SS60 SS S 60d
36 SS63 1493.1477 SS60 SS S 60d
37 SW21 1559.5000 SW20 SW W 20d
38 SW22 1387.1173 SW20 SW W 20d
39 SW23 1563.9524 SW20 SW W 20d
40 SW41 1439.0355 SW40 SW W 40d
41 SW42 1508.0054 SW40 SW W 40d
42 SW43 1425.1602 SW40 SW W 40d
43 SW61 1488.0000 SW60 SW W 60d
44 SW62 1398.9880 SW60 SW W 60d
45 SW63 1497.8553 SW60 SW W 60d
46 W011 1377.8092 W010 WCW W 10d
47 W012 1304.3725 W010 WCW W 10d
48 W013 1413.2292 W010 WCW W 10d
49 W021 1377.8092 W010 BW W 10d
50 W022 1304.3725 W010 BW W 10d
51 W023 1413.2292 W010 BW W 10d
52 W031 1377.8092 W010 SW W 10d
53 W032 1304.3725 W010 SW W 10d
54 W033 1413.2292 W010 SW W 10d
55 W041 1377.8092 W010 BSW W 10d
56 W042 1304.3725 W010 BSW W 10d
57 W043 1413.2292 W010 BSW W 10d
58 W051 1377.8092 W010 SS W 10d
59 W052 1304.3725 W010 SS W 10d
60 W053 1413.2292 W010 SS W 10d
61 W061 1377.8092 W010 BSS W 10d
62 W062 1304.3725 W010 BSS W 10d
63 W063 1413.2292 W010 BSS W 10d
64 WCW21 1246.5794 WCW20 WCW W 20d
65 WCW22 1249.2180 WCW20 WCW W 20d
66 WCW23 1134.3462 WCW20 WCW W 20d
67 WCW41 1074.9192 WCW40 WCW W 40d
68 WCW42 887.7191 WCW40 WCW W 40d
69 WCW43 990.3733 WCW40 WCW W 40d
70 WCW61 864.2727 WCW60 WCW W 60d
71 WCW62 934.5111 WCW60 WCW W 60d
72 WCW63 801.5696 WCW60 WCW W 60d
我在 r 中尝试了 ggpubr
包并应用了 compare_means
函数。
对于方差分析测试,我得到:
> compare_means(chao1~Duration,data=combined,method="anova",group.by = "Sgroup")
# A tibble: 6 x 7
Sgroup .y. p p.adj p.format p.signif method
<fct> <chr> <dbl> <dbl> <chr> <chr> <chr>
1 BSS chao1 0.00394 0.0079 0.00394 ** Anova
2 BSW chao1 0.000000164 0.00000098 1.6e-07 **** Anova
3 BW chao1 0.00000283 0.000014 2.8e-06 **** Anova
4 SS chao1 0.0000996 0.0004 1.0e-04 **** Anova
5 SW chao1 0.160 0.16 0.16005 ns Anova
6 WCW chao1 0.000118 0.0004 0.00012 *** Anova
这正是我想要的。然后我制作情节:
ggboxplot(combined,x="Samples", y="chao1",palette = "jco", add = "jitter",short.panel.labs = FALSE)+facet_wrap(~Sgroup,scales = "free")
并得到:
我已经通过 stat_compare_means
函数尝试了很多,但我仍然无法在绘图上添加我的方差分析测试结果
任何建议都会得到帮助!
我过去在使用 facet_wrap
时遇到过问题,可能是它不受支持。希望我被证明是错的!如果你想要一个替代方案,你可以使用 cowplot
包自己构建网格。这是更多的工作,但也许允许更多的灵活性。这是您 运行 ?stat_compare_means
时使用的数据示例
# packages
library(cowplot)
library(ggpubr)
# data from ggpubr
data("ToothGrowth")
head(ToothGrowth)
# define groups, build plots in a list and subset
groups <- unique(ToothGrowth$supp)
pl <- lapply(groups, function(g){
p <- ggboxplot(ToothGrowth[ToothGrowth$supp==g,], x = "dose", y = "len",
color = "dose", palette = "npg") +
stat_compare_means()
})
# use cowplot to bring together
cowplot::plot_grid(plotlist = pl, ncol = 2)
我的数据如下,我想绘制一个多箱线图,并在图中显示方差分析测试结果。
> combined
SampleID chao1 Samples Sgroup Bgroup Duration
1 BSS21 1275.1071 BSS20 BSS S 20d
2 BSS22 1575.4972 BSS20 BSS S 20d
3 BSS23 1381.2963 BSS20 BSS S 20d
4 BSS41 1090.0254 BSS40 BSS S 40d
5 BSS42 1103.6522 BSS40 BSS S 40d
6 BSS43 1065.7177 BSS40 BSS S 40d
7 BSS61 1077.8776 BSS60 BSS S 60d
8 BSS62 1123.5759 BSS60 BSS S 60d
9 BSS63 1201.3571 BSS60 BSS S 60d
10 BSW21 937.0231 BSW20 BSW W 20d
11 BSW22 970.0462 BSW20 BSW W 20d
12 BSW23 1070.1560 BSW20 BSW W 20d
13 BSW41 1894.8606 BSW40 BSW W 40d
14 BSW42 1825.0271 BSW40 BSW W 40d
15 BSW43 1869.3494 BSW40 BSW W 40d
16 BSW61 1332.4078 BSW60 BSW W 60d
17 BSW62 1354.4593 BSW60 BSW W 60d
18 BSW63 1365.2961 BSW60 BSW W 60d
19 BW21 1533.9137 BW20 BW W 20d
20 BW22 1643.1564 BW20 BW W 20d
21 BW23 1572.8900 BW20 BW W 20d
22 BW41 1678.0270 BW40 BW W 40d
23 BW42 1596.9105 BW40 BW W 40d
24 BW43 1684.8433 BW40 BW W 40d
25 BW61 1060.2059 BW60 BW W 60d
26 BW62 1127.0738 BW60 BW W 60d
27 BW63 1097.7083 BW60 BW W 60d
28 SS21 1751.0145 SS20 SS S 20d
29 SS22 1662.5932 SS20 SS S 20d
30 SS23 1806.3628 SS20 SS S 20d
31 SS41 1302.9245 SS40 SS S 40d
32 SS42 1126.5082 SS40 SS S 40d
33 SS43 1122.6136 SS40 SS S 40d
34 SS61 1429.4972 SS60 SS S 60d
35 SS62 1402.5714 SS60 SS S 60d
36 SS63 1493.1477 SS60 SS S 60d
37 SW21 1559.5000 SW20 SW W 20d
38 SW22 1387.1173 SW20 SW W 20d
39 SW23 1563.9524 SW20 SW W 20d
40 SW41 1439.0355 SW40 SW W 40d
41 SW42 1508.0054 SW40 SW W 40d
42 SW43 1425.1602 SW40 SW W 40d
43 SW61 1488.0000 SW60 SW W 60d
44 SW62 1398.9880 SW60 SW W 60d
45 SW63 1497.8553 SW60 SW W 60d
46 W011 1377.8092 W010 WCW W 10d
47 W012 1304.3725 W010 WCW W 10d
48 W013 1413.2292 W010 WCW W 10d
49 W021 1377.8092 W010 BW W 10d
50 W022 1304.3725 W010 BW W 10d
51 W023 1413.2292 W010 BW W 10d
52 W031 1377.8092 W010 SW W 10d
53 W032 1304.3725 W010 SW W 10d
54 W033 1413.2292 W010 SW W 10d
55 W041 1377.8092 W010 BSW W 10d
56 W042 1304.3725 W010 BSW W 10d
57 W043 1413.2292 W010 BSW W 10d
58 W051 1377.8092 W010 SS W 10d
59 W052 1304.3725 W010 SS W 10d
60 W053 1413.2292 W010 SS W 10d
61 W061 1377.8092 W010 BSS W 10d
62 W062 1304.3725 W010 BSS W 10d
63 W063 1413.2292 W010 BSS W 10d
64 WCW21 1246.5794 WCW20 WCW W 20d
65 WCW22 1249.2180 WCW20 WCW W 20d
66 WCW23 1134.3462 WCW20 WCW W 20d
67 WCW41 1074.9192 WCW40 WCW W 40d
68 WCW42 887.7191 WCW40 WCW W 40d
69 WCW43 990.3733 WCW40 WCW W 40d
70 WCW61 864.2727 WCW60 WCW W 60d
71 WCW62 934.5111 WCW60 WCW W 60d
72 WCW63 801.5696 WCW60 WCW W 60d
我在 r 中尝试了 ggpubr
包并应用了 compare_means
函数。
对于方差分析测试,我得到:
> compare_means(chao1~Duration,data=combined,method="anova",group.by = "Sgroup")
# A tibble: 6 x 7
Sgroup .y. p p.adj p.format p.signif method
<fct> <chr> <dbl> <dbl> <chr> <chr> <chr>
1 BSS chao1 0.00394 0.0079 0.00394 ** Anova
2 BSW chao1 0.000000164 0.00000098 1.6e-07 **** Anova
3 BW chao1 0.00000283 0.000014 2.8e-06 **** Anova
4 SS chao1 0.0000996 0.0004 1.0e-04 **** Anova
5 SW chao1 0.160 0.16 0.16005 ns Anova
6 WCW chao1 0.000118 0.0004 0.00012 *** Anova
这正是我想要的。然后我制作情节:
ggboxplot(combined,x="Samples", y="chao1",palette = "jco", add = "jitter",short.panel.labs = FALSE)+facet_wrap(~Sgroup,scales = "free")
并得到:
我已经通过 stat_compare_means
函数尝试了很多,但我仍然无法在绘图上添加我的方差分析测试结果
任何建议都会得到帮助!
我过去在使用 facet_wrap
时遇到过问题,可能是它不受支持。希望我被证明是错的!如果你想要一个替代方案,你可以使用 cowplot
包自己构建网格。这是更多的工作,但也许允许更多的灵活性。这是您 运行 ?stat_compare_means
# packages
library(cowplot)
library(ggpubr)
# data from ggpubr
data("ToothGrowth")
head(ToothGrowth)
# define groups, build plots in a list and subset
groups <- unique(ToothGrowth$supp)
pl <- lapply(groups, function(g){
p <- ggboxplot(ToothGrowth[ToothGrowth$supp==g,], x = "dose", y = "len",
color = "dose", palette = "npg") +
stat_compare_means()
})
# use cowplot to bring together
cowplot::plot_grid(plotlist = pl, ncol = 2)