This is a cross-posting from stockoverflow Q.
How can one use highlight(..., selectize=TRUE)
in shiny
context without duplicating “SharedData” boxes as renderPlotly({})
is iterated?
Here is an example:
library(shiny)
library(plotly)
library(rlang)
ui <- fluidPage(
selectInput("Var1","Var1",choices=names(iris)[-5], selected=names(iris)[1]),
selectInput("Var2","Var2",choices=names(iris)[-5], selected=names(iris)[2]),
plotlyOutput(outputId = "ClustGraph")
)
server <- function(input, output, session) {
output$ClustGraph <-renderPlotly({
Var1 <- quo(!!input$Var1)
Var1 <- ensym(Var1)
Var2 <- quo(!!input$Var2)
Var2 <- ensym(Var2)
key <- highlight_key(iris, ~Species, group ="SharedData")
qplot(data=key, x=!!Var1, y=!!Var2, color=Species) %>%
ggplotly() %>%
highlight(on = "plotly_selected", dynamic = TRUE,
selectize = TRUE, selected = attrs_selected(showlegend = FALSE))
})
}
shinyApp(ui, server)