使x轴围绕峰值居中

时间:2016-12-12 15:42:25

标签: r ggplot2

ggplot中是否有一种方法可以使x轴围绕每个患者(id)的t峰值居中,而不是在第0天开始?我目前显示如下,但它只是一个大混乱,因为它们都是在不同的时间开始......

非常感谢,Annemarie

a <- ggplot(df, aes(x=day, y=t, group=id)) 
a + geom_line(aes(colour=id))

id day  t   
1   0   25   
1   1   100   
1   2   30   
1   3   20   
1   4   5  
1   5   0  
2   0   0  
2   1   0  
2   2   25  
2   3   70  
2   4   25  
2   5   10  
3   0   5  
3   1   10  
3   2   15  
3   3   15  
3   4   120  
3   5   60  

1 个答案:

答案 0 :(得分:1)

这是你的想法:

library(dplyr)

df = df %>% group_by(id) %>%
  mutate(day.centered = day - day[which.max(t)])

ggplot(df, aes(x=day.centered, y=t, group=id)) +
  geom_line(aes(colour=id))

请注意,如果有多个t(对于给定的id)具有最大值,则此方法会将第一个最大值的日期设置为零。

enter image description here