Verwenden Sie bsModal im shinyBS-Paket mit plotly R plotly_click, um in pop up @ ein neues Diagramm zu erstelle

Hier ist mein Code für eine grundlegende glänzende App mitplotly_click event, um optional einen anderen Plot anzuzeigen. Ich möchte, dass das Seitenrahmen-Diagramm in einem modalen Popup-Fenster anstatt auf der Seite innerhalb der Seite dargestellt wird.

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)

Ich konnte dieser Frage folgen Shiny: Plotten der Ergebnisse im Popup-Fenster) und Antwort, und versuchte, es mit dem @ zu verwendtrigger vonplotly_click ohne Erfolg. Haben Sie eine Idee, wie Sie dasselbe mit einem planmäßigen Hover-Klick-Ereignis erreichen können?

UPDATE: Ich kann deutlich sehen, dass einplotly Plot kann in einem @ gerendert werdshinyBS modales Popup-Fenster, wie in diesem Code gezeigt.

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)

nstelle einesactionButton als auslöser will ich dasplotly_click oderplotly_hover wie dort auslösen (im ursprünglichen Beispiel).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage