将stat_compare_means与r中的构面合并:仅计算1个构面的p值

时间:2019-02-26 15:13:06

标签: r ggplot2 statistics facet-grid

我尝试使用以下R代码绘制数据:

print(ggplot(data = my_data3, aes(x = Visit, y = Variable1, group = number)) + 
     geom_point(aes(col=Treatment), size = 2) +
     geom_line(aes(col=Treatment)) +
     facet_grid(. ~ Treatment) +
     ggtitle("Variable1")+
     theme_bw() + 
     stat_compare_means(comparisons = list(c("visit 1", "visit 2")), label = "p.format", method = "wilcox.test", paired=T, tip.length = 0))

我的Variable3包含2个变量,当我使用facet_grid函数时,它们被绘制为2个图形。但是,p值仅针对其中一个图显示。如何获得两个图的p值?Graph showing the p value for 1 facet

这是数据集的一部分:

my_data3 <- structure(list(number = c(110002, 110002, 110003, 110003, 110004, 
                                 110004, 110005, 110005, 110006, 110006, 110007, 110007, 110008, 
                                 110008, 110009, 110009, 110010, 110010, 110011, 110011, 110012, 
                                 110012, 110013, 110013, 110014, 110014, 110016, 110016, 110017, 
                                 110017), Treatment = c("Treatment1", "Treatment1", "Treatment2", 
                                                        "Treatment2", "Treatment2", "Treatment2", "Treatment2", "Treatment2", 
                                                        "Treatment1", "Treatment1", "Treatment1", "Treatment1", "Treatment2", 
                                                        "Treatment2", "Treatment2", "Treatment2", "Treatment1", "Treatment1", 
                                                        "Treatment2", "Treatment2", "Treatment1", "Treatment1", "Treatment2", 
                                                        "Treatment2", "Treatment2", "Treatment2", "Treatment1", "Treatment1", 
                                                        "Treatment2", "Treatment2"), Visit = c("visit 1", "visit 2", 
                                                                                               "visit 1", "visit 2", "visit 1", "visit 2", "visit 1", "visit 2", 
                                                                                               "visit 1", "visit 2", "visit 1", "visit 2", "visit 1", "visit 2", 
                                                                                               "visit 1", "visit 2", "visit 1", "visit 2", "visit 1", "visit 2", 
                                                                                               "visit 1", "visit 2", "visit 1", "visit 2", "visit 1", "visit 2", 
                                                                                               "visit 1", "visit 2", "visit 1", "visit 2"), Variable1 = c(5618, 
                                                                                                                                                          4480.5, 1034.75, 706.75, 11492.5, 6037.5, 3841.5, 2762.75, 306, 
                                                                                                                                                          138.5, 259.5, 0, 31.5, 911.75, 1909.5, 1352.75, 1957.75, 2383.25, 
                                                                                                                                                          23538.25, 8595.5, 13360.5, 10337.5, 1696.5, 805.25, 14655, 6169, 
                                                                                                                                                          10141, 5922.25, 2164.25, 14990.25)), .Names = c("number", "Treatment", 
                                                                                                                                                                                                          "Visit", "Variable1"), row.names = c(NA, 30L), class = "data.frame")

1 个答案:

答案 0 :(得分:0)

我今天遇到了类似的问题,所以我将答案留在这里,以防将来其他人需要它:

当您在图解的一般美学中使用分组变量(使用分组,颜色,填充等)时,stat_compare_means似乎很困难,因此您应将其移至特定功能的美学中想要使用它们。

对于您的代码,我只需要在group = number函数内移动geom_line参数即可解决问题:

ggplot(data = my_data3, aes(x = Visit, y = Variable1)) + 
  geom_point(aes(col=Treatment), size = 2) +
  geom_line(aes(col=Treatment, group = number)) +
  facet_grid(. ~ Treatment) +
  ggtitle("Variable1")+
  theme_bw() + 
  stat_compare_means(comparisons = list(c("visit 1", "visit 2")), 
  label = "p.format", method = "wilcox.test", paired=T, tip.length = 0)

fixed plot with pvalues in both facets