簡體   English   中英

如何繪制連接geom_points的線以用於R中的重復測量?

[英]How to plot a line connecting geom_points for repeated measures in R?

我正在尋找一種方法來連接我的 ggplot 中的各個數據點,以便表明數據是隨着時間的推移對同一個人的重復測量。 到目前為止,我已經成功地創建了一個條形圖,上面有單獨的 geom_point(每個主題的數據點)。 但是,我想將三個時間點之間與同一參與者匹配的點連接起來。 任何指針?

  ## Example data, data from two groups: patients and controls
    data_ex <- data.frame( pnum = c(1,2,3,4,5,6,7,8,9,10),
                               group = c("patient", "patient","patient","patient","patient","control","control","control", "control", "control"),
                               age = c(24,35,43,34,55,24,36,43,34,54),
                               panas_1.1 = c(-26, -15, -17, -15, -20, -21, -18, -19, -16, -20),
                               panas_1.2 = c(-25, -19, -14, -18, -20, -22, -17, -19, -18, -19),
                               panas_1.3 = c(-22, -21, -18, -14, -21, -21, -14, -17, -16, -18))

    ## Reshape the data
        data_ex_long <- data_ex %>% gather(key = time, value = PANAS_score, panas_1.1, panas_1.2, panas_1.3)

    ## plot the data
        ggplot(data=data_ex_long,aes(x = time, y = PANAS_score, fill = group)) +  
            geom_bar(stat = "summary",fun.y = 'mean', colour="black", size=1.8, position = position_dodge(width = 1)) +
          geom_point(aes(time, fill = group), colour="black", size = 3, shape = 21, position = 
                       position_jitterdodge(jitter.width = 0.2, jitter.height=0.4, 
                                            dodge.width=0.9), alpha = 0.8) +
          geom_errorbar(aes(size=2),stat = 'summary', position = 'dodge', color = "black", width = 1, size = 1, fatten = 2) +
          theme(text = element_text(size = 18),
                legend.position = "none",
                axis.text.x  = element_text(size=15, color="#000000"),     
                axis.text.y  = element_text(size=20, color="#000000"),       
                axis.title.x = element_blank(),  
                axis.title.y = element_text(size=18, color="#000000"),
                axis.line.x  = element_line(colour = "black", size = 1.3), 
                axis.line.y  = element_line(colour = "black", size = 1.3),
                panel.border = element_blank(),
                panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
                panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(),
                panel.background = element_blank(),
                axis.ticks.length = unit(.25, "cm"),
                axis.line = element_line()) +
          ylab(" PANAS score ") + 
          NULL

在此處輸入圖片說明

你可以試試

pd <- position_dodge(0.8)
ggplot(data=data_ex_long,aes(x = time, y = PANAS_score, fill = factor(group, levels = c("patient", "control")))) +  
  geom_bar(stat = "summary",fun.y = 'mean', color=1, position = "dodge") +
  geom_point(aes(group=pnum),position = pd, shape =21) +
  geom_line(aes(group=pnum),position = pd) + 
  geom_errorbar(stat = 'summary', position = "dodge") +
  scale_fill_discrete("")

在此處輸入圖片說明

根據您的評論,我建議完全切換到stat_summary

pd <- position_dodge(.9)

data_ex_long$group <- factor(data_ex_long$group, levels = c("patient", "control"))
ggplot(data=data_ex_long,aes(x = time, y = PANAS_score, fill = group)) +  
  stat_summary(fun.y = "mean", geom = "bar",position = pd) + 
  stat_summary(aes(group = group), 
               fun.y = "mean", geom = "line",position = pd, size= 1.5 ) + 
  stat_summary(fun.data = mean_se, geom = "errorbar",position = pd, width = 0.3) + 
  geom_point(aes(group=pnum),position = pd, shape =21)

在此處輸入圖片說明

使用ggplot2_3.1.0

我正在嘗試做類似的情節,但正在努力! 我有兩個重復測量因素,而不是一個重復測量和獨立的小組。 因此,在我的x軸上,我有一個之前和之后的葯物測量值,前兩個框圖(靜止與動作的顏色不同),后兩個框圖(不同顏色的靜止與動作的坐標)。 我希望能夠顯示每個主題的趨勢,四個4個圖中每個圖都有一個數據點。

以下是箱形圖,每個箱形圖帶有抖動點,但是我想用一條線連接各個主題的點。

p <- ggplot(df, aes(x=Group, y=PLV, fill=Move)) +
  geom_boxplot(outlier.size = -1) +
  geom_point(df,mapping=aes(x=Group, y=PLV, fill=Move), position = position_jitterdodge  0.2)

df:

1   Before  Rest    0.22238
2   Before  Rest    0.21670
3   Before  Rest    0.21443
4   Before  Rest    0.22624
5   Before  Move    0.22796
6   Before  Move    0.22217
7   Before  Move    0.21418
8   Before  Move    0.21679
9   After   Rest    0.36057
10  After   Rest    0.26613
11  After   Rest    0.27747
12  After   Rest    0.32213
13  After   Move    0.35226
14  After   Move    0.27122
15  After   Move    0.26650
16  After   Move    0.28785

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM