我有一个问题(我是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)))
答案 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))
作为旁注,当需要变量的分位数分布时,通常会使用geom_boxplot()
,您可以这样做:
ggplot(df, aes(x = TYPE, y = DV, group = TYPE)) + geom_point() + geom_boxplot()
中位数的位置与我们上面手动绘制的相同。