daattali / timevis

📅 Create interactive timeline visualizations in R
http://daattali.com/shiny/timevis-demo/
Other
653 stars 157 forks source link

Hot Timevis remove all items at the same time? #46

Closed harryprince closed 6 years ago

harryprince commented 6 years ago

thanks for daattali's great job, I am using timevis to visualize a time series of user behaviour. However, I fail to find the function to remove all items at the same time on the timevis, just like leaflet::removeMarker, to store the items list is so redundant for this case.

Now, my shiny app query twice user behaviour will be a little bit weird because I don't know how to clear previous query results.

formatTimevisDF<- function(df,input, output,session){
  for ( i in seq(df %>% nrow())){
    tmp = df[i,]
    print(tmp)
    # timeline formatting
    timevis::addItem("timeline",
                     list(id = tmp$orderid,
                          content = tmp$context,
                          group = substr(as.character(tmp$starttime),1,10),
                          start = paste0(as.character(Sys.Date())," ",substr(as.character(tmp$starttime),12,20)),
                          end = paste0(as.character(Sys.Date())," ",substr(as.character(tmp$endtime),12,20))
                     ))
  }
}
harryprince commented 6 years ago

store previous query result seems to fix the problem

# query init
      observeEvent(input$query,{
        values$query = input$query
        values$timeline_ids = input$timeline_ids
      })
# remove previous timeline_ids
        purrr::map(.x = values$timeline_ids,#input$timeline_ids, 
                   .f = function(itemId){
                     timevis::removeItem(id = "timeline",itemId = itemId)
                   })