library(ggplot2)
library(ggiraph)
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
gg_crime <- ggplot(crimes, aes(x = Murder, y = Assault, color = UrbanPop )) +
geom_point_interactive(
aes( data_id = state, tooltip = state), size = 3,
hover_nearest = TRUE) +
scale_colour_gradient(low = "#999999", high = "orange") +
theme_minimal()
shinyServer(function(input, output, session) {
selected_state <- reactive({
input$plot_selected
})
output$console <- renderPrint({
input$plot_hovered
})
output$plot <- renderGirafe({
x <- girafe(code = print(gg_crime),
width_svg = 6, height_svg = 5,
options = list(
opts_hover(css = "fill:#FF3333;stroke:black;cursor:pointer;", reactive = TRUE),
opts_selection(
type = "multiple", css = "fill:#FF3333;stroke:black;")
))
x
})
observeEvent(input$reset, {
session$sendCustomMessage(type = 'plot_set', message = character(0))
})
output$datatab <- renderTable({
out <- crimes[crimes$state %in% selected_state(), ]
if( nrow(out) < 1 ) return(NULL)
row.names(out) <- NULL
out
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.