在 ggpaired 中缺少观察之间的连接线

missing connecting lines between observations in ggpaired

我正在尝试形象化两个配对实验。我有两个站点,在每个站点我对不同时期的 15 个人进行了测量。

当我分别绘制站点时,我得到了带有连接线的箱线图,但是当我使用 facet_grid() 将两个图放在一个图像中时,这些线消失了。好像是geom_path的问题,我一直没能解决

如何显示连接线?

举个例子:

    library(ggplot2)
    library(ggpubr)
        
    dat <-
        structure(list(period = c("Period1", "Period1", "Period1", "Period1", 
        "Period1", "Period1", "Period1", "Period1", "Period1", "Period1", 
        "Period1", "Period1", "Period1", "Period1", "Period1", "Period2", 
        "Period2", "Period2", "Period2", "Period2", "Period2", "Period2", 
        "Period2", "Period2", "Period2", "Period2", "Period2", "Period2", 
        "Period2", "Period2", "Period1", "Period1", "Period1", "Period1", 
        "Period1", "Period1", "Period1", "Period1", "Period1", "Period1", 
        "Period1", "Period1", "Period1", "Period1", "Period1", "Period2", 
        "Period2", "Period2", "Period2", "Period2", "Period2", "Period2", 
        "Period2", "Period2", "Period2", "Period2", "Period2", "Period2", 
        "Period2", "Period2"), id = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
        9L, 10L, 11L, 12L, 13L, 14L, 15L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
        8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
        21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 16L, 17L, 18L, 
        19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L), 
            value = c(206, 237, 229, 283, 272, 258, 245, 285, 204, 204, 
            279, 205, 281, 221, 226, 181, 263, 191, 263, 236, 213, 216, 
            248, 174, 199, 290, 197, 302, 230, 216, 277, 313, 336, 298, 
            387, 340, 385, 321, 327, 283, 277, 311, 319, 307, 373, 250, 
            279, 291, 286, 433, 403, 452, 352, 293, 316, 321, 306, 382, 
            318, 344), site = c("SiteA", "SiteA", "SiteA", "SiteA", "SiteA", 
            "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", 
            "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", 
            "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", "SiteA", 
            "SiteA", "SiteA", "SiteA", "SiteA", "SiteB", "SiteB", "SiteB", 
            "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", 
            "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", 
            "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", 
            "SiteB", "SiteB", "SiteB", "SiteB", "SiteB", "SiteB")), row.names = c(NA, 
        -60L), class = "data.frame")
    
    p <- ggpaired(dat, x="period", y="value", group="site",line.color = "gray", line.size = 0.4)+
      stat_compare_means(paired = TRUE) +
      facet_grid(~site)

    p

看起来在分面的情况下你必须更具体地设置 id 参数,即你可以通过设置 id="id":

来达到你想要的结果
library(ggplot2)
library(ggpubr)

ggpaired(dat, x = "period", y = "value", id = "id", line.color = "gray", line.size = 0.4) +
  stat_compare_means(paired = TRUE) +
  facet_grid(~site)