这是我在这里的第一个问题,请不要生气,如果有的话......
重点是:
我有几个时间点(移植,第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在这种情况下......谁能告诉我什么?
谢谢大家!
这是那种你可以使用的东西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 crossbar或errorbar作为geom,但你必须设置ymin和ymax为这些.您可以将这些美学设置..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)
