使用数据框中的标志添加垂直线
Adding a vertical line by using a flag in the data frame
我有一个数据框如下:
df<-
FORM TIME CONC
0 1 5
0 2 10
0 5 11
1 6 14
1 7 15
我正在策划 TIME
与 CONC
。当公式从 FORM 1
更改为 FORM 2
时,我想在 TIME
处添加一条垂直线。我想编写绘图代码,以便它可以检测公式何时自动更改。
下面的ggplot行应该怎么写:
plotobj <- plotobj + vline(aes(slope = 1, intercept = ??), linetype = "dashed", size = 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
为所有等于 1 的 FORM
值给出索引。我们提取这些值并使用 min
从具有最小值 TIME
的行中选择一个.最后使用这个索引,我们从 df$TIME
.
中选择相应的值
我有一个数据框如下:
df<-
FORM TIME CONC
0 1 5
0 2 10
0 5 11
1 6 14
1 7 15
我正在策划 TIME
与 CONC
。当公式从 FORM 1
更改为 FORM 2
时,我想在 TIME
处添加一条垂直线。我想编写绘图代码,以便它可以检测公式何时自动更改。
下面的ggplot行应该怎么写:
plotobj <- plotobj + vline(aes(slope = 1, intercept = ??), linetype = "dashed", size = 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
为所有等于 1 的 FORM
值给出索引。我们提取这些值并使用 min
从具有最小值 TIME
的行中选择一个.最后使用这个索引,我们从 df$TIME
.