Use bsModal en el paquete shinyBS con plotly R plotly_click para generar un nuevo gráfico en una ventana emergente
Aquí está mi código para una aplicación brillante básica usandoplotly_click
evento para mostrar opcionalmente otra trama. Me gustaría que el diagrama de la caja lateral se renderice en una ventana emergente modal en lugar de en el lado dentro de la página.
library(shiny)
library(plotly)
df1 <- data.frame(x = 1:10, y = 1:10)
df2 <- data.frame(x = c(rep('a', 10), rep('b', 10)),
y = c(rnorm(10), rnorm(10, 3, 1)))
ui <- fluidPage(
column(6, plotlyOutput('scatter')),
column(6, plotlyOutput('box'))
)
server <- function(input, output) {
output$scatter <- renderPlotly({
plot_ly(df1, x = x, y = y, mode = 'markers', source = 'scatter')
})
output$box <- renderPlotly({
eventdata <- event_data('plotly_click', source = 'scatter')
validate(need(!is.null(eventdata),
'Hover over the scatter plot to populate this boxplot'))
plot_ly(df2, x = x, y = y, type = 'box')
})
}
shinyApp(ui = ui, server = server)
Pude seguir esta pregunta (Brillante: la trama da como resultado una ventana emergente) y la respuesta, e intenté usarlo con eltrigger
deplotly_click
sin éxito. ¿Alguna idea de cómo lograr lo mismo con un evento de clic de desplazamiento planetario?
ACTUALIZACIÓN: Puedo ver claramente que unplotly
la trama se puede representar en unshinyBS
ventana emergente modal como lo demuestra este código.
df1 <- data.frame(x = 1:10, y = 1:10)
ui <- fluidPage(
actionButton('go', 'Click Go'),
bsModal('plotlyPlot', 'Here is a Plot', 'go', plotlyOutput('scatter1'))
)
server <- function(input, output) {
output$scatter1 <- renderPlotly({
plot_ly(df2, x = x, y = y, mode = 'markers', source = 'scatter1')
})
}
shinyApp(ui = ui, server = server)
En lugar de unactionButton
como disparador, quiero elplotly_click
oplotly_hover
como hay disparador (en el ejemplo original).