gpt4 book ai didi

R Shiny 错误 : How to work with the click events incase of two plotly plots?

转载 作者:行者123 更新时间:2023-12-02 01:09:20 24 4
gpt4 key购买 nike

我在 Shiny 的仪表板上有两个 plotly 图。当我点击第一个 plotly 图时,交互式事件工作正常。但是,当我对堆叠条形图的第二个图执行相同的操作时,窗口会自动关闭。

您是否遇到过带有不止一个 plotly 图的 Shiny 仪表板?如果是,如何处理不同 plotly 图上的点击事件?

我正在准备可重现的用例。很快我会发布它。

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)

上面的代码产生:
enter image description here

如何避免上图中的可用错误? 绘图输出区域中的文本打印。

第一个图用于迭代点击事件。当我点击 y=1 上的一个点时,它产生第二个图
enter image description here

但是当我点击堆叠条时,第二个图丢失了
(在我的原始场景中,窗口关闭且不可见。要使用该应用程序,我需要重新运行该应用程序)。
enter image description here

如何接收点击事件并检查它是来自第一个 plotly 还是第二个 plotly ?

最佳答案

仅针对错误抑制问题:-
在您的 ui 部分输入此内容

tags$style(type="text/css",
".shiny-output-error { visibility: hidden; }",
".shiny-output-error:before { visibility: hidden; }"

)

对于图问题。我有同样的

关于R Shiny 错误 : How to work with the click events incase of two plotly plots?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45822140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com