使用数据框中的标志添加垂直线

时间:2015-03-30 05:42:58

标签: r ggplot2

我的数据框如下:

df<-
 FORM  TIME   CONC  
  0     1      5
  0     2      10 
  0     5      11
  1     6      14
  1     7      15

我正在密谋TIMECONC。当配方从TIME更改为FORM 1时,我想在FORM 2处添加一条垂直线。我想制作用于绘图的代码,以便它可以检测配方何时自动更改。

我应该如何在下面的ggplot行中编写它:

plotobj <- plotobj + vline(aes(slope = 1, intercept = ??), linetype = "dashed", size = 1)

1 个答案:

答案 0 :(得分:1)

如果我正确地读了你,这应该会有所帮助:

库(GGPLOT2)

df = data.frame(FORM=c(0,0,0,1,1),TIME=c(1,2,5,6,7),CONC=c(5,10,11,14,15))

ggplot()+
   geom_line(data=df,aes(x=TIME,y=CONC))+
   geom_vline(xintercept = min(df$TIME[grep(1,df$FORM)]), linetype = "dashed", size = 1)

实际上重要的是:

min(df$TIME[grep(1,df$FORM)])

grep为所有FORM值提供等于1的索引。我们使用TIME提取这些值并使用min的最小值从行中选择一个。最后使用此索引,我们从df$TIME中选择相应的值。