簡體   English   中英

向垂直散布ggplot2添加均值欄

[英]Adding Mean Bar To Vertical Scatter ggplot2

我正在使用ggplot2使用以下代碼和數據制作垂直散點圖。 我想在Wk42和Wk28上添加一個中間條。 很抱歉,這是我和R在一起的第一個周末。

ggplot(test, aes(x=Week, y=Score, color=PTID)) + geom_point(shape=1)


    PTID    Week    Score
1   Subject 1   Wk42    NA
2   Subject 2   Wk42    0
3   Subject 3   Wk42    6
4   Subject 4   Wk42    NA
5   Subject 5   Wk42    NA
6   Subject 6   Wk42    78
7   Subject 7   Wk42    42
8   Subject 8   Wk42    NA
9   Subject 9   Wk42    38
10  Subject 10  Wk42    2
11  Subject 11  Wk42    4
12  Subject 12  Wk42    1
13  Subject 13  Wk42    NA
14  Subject 14  Wk42    NA
15  Subject 15  Wk42    17
16  Subject 1   Wk28    NA
17  Subject 2   Wk28    0
18  Subject 3   Wk28    11
19  Subject 4   Wk28    NA
20  Subject 5   Wk28    NA
21  Subject 6   Wk28    25
22  Subject 7   Wk28    28
23  Subject 8   Wk28    5
24  Subject 9   Wk28    33
25  Subject 10  Wk28    3
26  Subject 11  Wk28    0
27  Subject 12  Wk28    0
28  Subject 13  Wk28    NA
29  Subject 14  Wk28    NA
30  Subject 15  Wk28    11

謝謝!

顯然,您需要進行構面添加。 首先,您必須計算兩組的中位數並創建一個data.frame 然后,您可以使用geom_hline添加行。

library(dplyr)

data_hline <- data %>% group_by(Week) %>% summarize(Median = median(Score))

        ggplot(test, aes(x=Week, y=Score, color=PTID)) + geom_point(shape=1) +
    facet_wrap(~Week) + geom_hline(data=data_hline,aes(yintercept=Median))

這是一個可重現的例子

data_hline <- mtcars %>% group_by(cyl) %>% summarize(Median = median(mpg))
> ggplot(mtcars, aes(x=cyl,y=mpg,fill=as.factor(gear))) + geom_point()+
+ facet_wrap(~cyl,scales="free_x")+ geom_hline(data=data_hline,aes(yintercept=Median))

在此處輸入圖片說明

訣竅是在geom_point使用colour參數,這意味着在添加任何其他層之前,尚未按主題對數據進行分組。

ggplot(test, aes(x=Week, y=Score)) + geom_point(aes(colour = PTID), shape=1) +
stat_summary(aes(Week, Score), data = test, fun.data = "median_hilow", geom = "crossbar")

在此處輸入圖片說明

暫無
暫無

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

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