绘制R ggplot中

时间:2016-09-22 00:33:52

标签: r ggplot2

我有一个问题(我是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))) 

1 个答案:

答案 0 :(得分:0)

您可以先计算每种类型的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))

enter image description here

作为旁注,当需要变量的分位数分布时,通常会使用geom_boxplot(),您可以这样做:

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

enter image description here

中位数的位置与我们上面手动绘制的相同。