ggiraph is an htmlwidget. It can be used within a Shiny application. In shiny, elements associated with data_id can be selected and the selection (the data_id value) is available in the client and the server side of the application.
ui.RInstead of a plotOutput, use function ggiraphOutput.
ggiraphOutput("plot")server.RUse function ggiraphOutput.
output$plot <- renderggiraph({
ggiraph(code = print(gg_blahblah) )
})It is possible to work with selecteds point on a ggiraph plot within a Shiny application.
Selection can be of two types: single or multiple. The ggiraph’s parameter selection_type will let you specify that.
output$myplot <- renderggiraph({
ggiraph(code = print(gg_blahblah), selection_type = "multiple" )
})The selected points will be captured in the input reactive value myplot_selected (name of the input id of the reactive output value + _selected):
input$myplot_selectedYou can also modify theses values by using the session$sendCustomMessage method with type myplot_set (name of the input id of the reactive output value + _set).
# delete selection
session$sendCustomMessage(type = 'myplot_set', message = character(0))The package contains Shiny examples available in the shiny directory of the package (system.file("shiny", package = "ggiraph")).
shiny::runApp(appDir = system.file("shiny/crimes", package = "ggiraph"), display.mode = "showcase")
shiny::runApp(appDir = system.file("shiny/cars", package = "ggiraph"), display.mode = "showcase")
# *group* selection
shiny::runApp(appDir = system.file("shiny/iris", package = "ggiraph"), display.mode = "showcase")shiny::runApp(appDir = system.file("shiny/DT", package = "ggiraph"), display.mode = "showcase")