Nothing
library(shiny)
library(plotly)
ui <- fluidPage(
plotlyOutput("p"),
tableOutput("table")
)
server <- function(input, output, session) {
# keep track of which cars have been hovered on
cars <- reactiveVal()
# On hover, the key field of the event data contains the car name
# Add that name to the set of all "selected" cars
observeEvent(event_data("plotly_hover"), {
car <- event_data("plotly_hover")$customdata
cars_old_new <- c(cars(), car)
cars(unique(cars_old_new))
})
# clear the set of cars when a double-click occurs
observeEvent(event_data("plotly_doubleclick"), {
cars(NULL)
})
output$p <- renderPlotly({
# if the car is selected, paint it red
cols <- ifelse(row.names(mtcars) %in% cars(), "red", "black")
mtcars %>%
plot_ly(
x = ~wt, y = ~mpg,
customdata = row.names(mtcars),
marker = list(color = cols)
) %>%
add_markers()
})
output$table <- renderTable({
filter(mtcars, row.names(mtcars) %in% cars())
})
}
shinyApp(ui, server)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.