I am trying to make a timeline using ggplot2 library with the following code:
library(ggplot2)
data <- read.csv("Data.csv", header = TRUE, sep = ",")
data$Date <- as.Date(data$Date)
xnow <- Sys.Date()
Names <- unique(data$Name)
i <- 0
plot<-ggplot(data,aes(x=Date,y=Name))+geom_point(aes(colour = factor(Event)))
for(i in 1:length(Names)){
personname <- Names[i]
xstart <- data[which(data$Event=="start" & data$Name== personname),]$Date
xfinal <- data[which(data$Event=="end of engagement" & data$Name== personname),]$Date
plot<-plot+geom_point(aes(x = Sys.Date(), y = personname), colour = "green", size = 3)
plot<-plot+geom_segment(aes(x=xstart ,xend=xnow,y = personname, yend = personname))
plot<-plot+geom_segment(aes(x=xnow ,xend=xfinal,y = personname, yend = personname), linetype = 2)
}
After the first iteration i am getting expected line segment for the name "devanshu". During second iteration the previous line segment for name "devanshu " disappears as soon as first command of iteration is executed. Data:
Name Date Event
devanshu 2/2/2016 start
devanshu 3/2/2016 first self assessment
devanshu 6/3/2016 first 360 assessment
devanshu 12/7/2016 end of engagement
Priya 4/2/2016 start
Priya 6/3/2016 first self assessment
Priya 10/4/2016 first 360 assessment
Priya 2/7/2017 end of engagement
The problem is in code or in logic?