ggplot2:重复测量和手段的点图

1 plot r ggplot2

这是我在这里的第一个问题,请不要生气,如果有的话......

重点是:

我有几个时间点(移植,第0天,第60天等......)和每个时间点的几个样本.样本已经过测量,因此每个时间点都有几个数字.我想制作一个点图,根据按时间点(在X轴上)分组的测量值(在Y轴上)放置点.我对ggplot很新,但我已经成功创造了情节.该示例的示例数据框和代码如下所示:

data=data.frame(value=1:30, time=rep(c('d0', 'd1', 'd2'), each=10))

str(data)
'data.frame':   30 obs. of  2 variables:
$ value: num  1 2 3 4 5 6 7 8 9 10 ...
$ time : Factor w/ 3 levels "d0","d1","d2": 1 1 1 1 1 1 1 1 1 1 ...

g=ggplot(data=data, aes(x=time, y=value))
g+geom_point()
Run Code Online (Sandbox Code Playgroud)

但我不知道如何添加短行来标记每个时间点的中值...猜猜我应该以某种方式使用geom_segments,但我不知道如何处理x,xend,y和yend在这种情况下......谁能告诉我什么?

谢谢大家!

aos*_*ith 7

这是那种你可以使用的东西stat_summary为与geom您所选择的.例如,您可以将中间值添加为point使用长划线作为符号并将大小更改为看起来正常的内容.

ggplot(data = data, aes(x = time, y = value)) + 
    geom_point() +
    stat_summary(fun.y = "median", geom = "point", pch = "_", size = 25)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一种选择是使用a crossbarerrorbar作为geom,但你必须设置yminymax为这些.您可以将这些美学设置..y..为简单地将它们设置为与y变量相同.更改width更改行的长度.

ggplot(data = data, aes(x = time, y = value)) + 
    geom_point() +
    stat_summary(fun.y = "median", geom = "crossbar", 
               mapping = aes(ymin = ..y.., ymax = ..y..), width = .25)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述