我在閃亮的儀表板中有兩個劇情陰謀。當我點擊第一個情節圖時,交互式事件工作正常。但是當我在第二塊圖上進行同樣的操作時,這個窗口會自動關閉。R閃亮的錯誤:如何處理兩個劇情圖的點擊事件?
您是否遇到過帶有多個陰謀情節的閃亮儀表盤?如果是的話,如何處理不同情節劇情的點擊事件?
我準備重複使用的用例。很快我會發布它。
library(shinydashboard)
library(plotly)
library(shiny)
library(dplyr)
library(ggplot2)
tg <- ToothGrowth
tg$dose <- factor(tg$dose)
skin <- Sys.getenv("DASHBOARD_SKIN")
skin <- tolower(skin)
if (skin == "")
skin <- "blue"
sidebar <- dashboardSidebar(
sidebarSearchForm(label = "Search...", "searchText", "searchButton"),
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard"))
)
)
body <- dashboardBody(
tabItems(
tabItem("dashboard",
fluidRow(
box(
title = "Distribution",
status = "primary",
plotlyOutput("plot1", height = "auto"),
height = 500,
width = 7
),
box(
height = 500, width = 5,
title = "Dist",
plotlyOutput("click", height = 430)
)
)
)
))
header <- dashboardHeader(
title = "My Dashboard"
)
ui <- dashboardPage(header, sidebar, body, skin = skin)
server <- function(input, output, session) {
output$plot1 <- renderPlotly({
p <- ggplot(data = tg, aes(x=len, y=dose, col=supp, key=supp)) + geom_point()
ggplotly(p)
})
output$click <- renderPlotly({
d <- event_data("plotly_click")
if (is.null(d)){
"Click events appear here (double-click to clear)"
} else {
gSel <- tg %>% filter(dose %in% d$y) %>% group_by(supp) %>% mutate(newLen=floor(len)) %>%
ggplot(aes(x=supp, fill=as.factor(newLen))) + geom_bar()
ggplotly(gSel)
}
})
}
shinyApp(ui, server)
如何避免上述圖像中可用的錯誤?在繪圖輸出區域中打印文本。
第一個圖用於迭代點擊事件。當我點擊y=1
一個點,它產生的第二個情節
但是當我點擊堆疊欄上,第二個情節變得缺少 (我在原來的方案中,窗口關閉,不可見的。要使用應用程序,我需要重新運行應用程序)。
如何接收點擊事件並檢查它是來自第一個情節還是第二個情節?