簡體   English   中英

在R ggplot中繪制點的中位數

[英]plotting median of the points in R ggplot

我在繪制以下內容的中位數時有一個問題(我是R語言的新手,已經花費了幾個小時來查找代碼)。 我希望有一個人可以幫助我!

TYPE(time)      DV
    0             1
    1             2 
    2             4 
    5             6
    7             7
    0             1
    1             2  
    2             3 
    5             6
    7             7
    1             2 
    2             4 
    5             6
    7             7
    0             1
    1             2  
    2             5 
    5             7
    7             8
    0             1 
    1             1 
    2             4 
    5             6
    7             7
    0             1
    1             2  
    2             3 
    5             6
    7             7

我希望使用GGplot2繪制中位數和通過y軸中位數的線(在本例中為DV)。 我只是為第一點構建了代碼,並希望增加中間值。 謝謝!!!

library(ggplus)
gg1 <- ggplot(dataplot) +
  geom_point(aes(x=TYPE, y=DV))) 

您可以先計算每種類型的DV的中值,然后使用geom_segment在圖中繪制線:

library(dplyr)
library(ggplot)
df1 <- df %>% group_by(TYPE) %>% mutate(med = median(DV))

gg1 <- ggplot(df1) +
       geom_point(aes(x=TYPE, y=DV)) + 
       geom_segment(aes(x = TYPE-0.5, xend = TYPE+0.5, y = med, yend = med))

在此處輸入圖片說明

附帶說明一下,通常,當需要分位數的變量分布時,通常會使用geom_boxplot() ,您可以使用該方法執行以下操作:

ggplot(df, aes(x = TYPE, y = DV, group = TYPE)) + geom_point() + geom_boxplot()

在此處輸入圖片說明

中位數的位置與我們上面手動繪制的位置相同。

暫無
暫無

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

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