plotly_click
イベントを使用して別のプロットをオプションで表示する基本的な光沢のあるアプリのコードを次に示します。ページ内の側面ではなく、モーダルポップアップでサイドボックスプロットをレンダリングしたいと思います。
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)
この質問 ( Shiny: plot results in popup window ) と応答に従うことができ、 の で使用しようとしましたtrigger
がplotly_click
成功しませんでした。プロットのホバークリックイベントで同じことをやってのける方法はありますか?
更新:このコードで示されているように、モーダル ポップアップ ウィンドウplotly
でプロットをレンダリングできることがはっきりとわかります。shinyBS
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)
actionButton
トリガーとしての代わりに、 plotly_click
orplotly_hover
が必要です (元の例では)。