gpt4 book ai didi

r - 从 Shiny 的 R 中散点图的多个选择生成多个表

转载 作者:行者123 更新时间:2023-12-04 07:32:54 25 4
gpt4 key购买 nike

我在 Shiny 的仪表板上有一个散点图,我想生成 两个通过选择/突出显示散点图的不同区域来显示不同的表格。我目前能够通过选择/突出显示一个区域来生成一个表格,但是我不确定如何使这个工作适用于两个表格/选择(或者甚至可能的话)。
任何帮助或建议将不胜感激。谢谢
下面提供了用于生成带有散点图的 Shiny 仪表板并突出显示/生成单个表格的示例代码(取自 here)
更多细节:理想情况下,此过程将通过在某些点上手动选择/拖动区域,生成第一个表,然后在不同的点子集上手动选择/拖动区域并生成第二个表来实现。在此之后,如果选择了另一个区域,它会重置第一个选择和表格,然后下一个选择将重置第二个选择和表格。

ui <- fluidPage(

plotOutput("plot", brush = "plot_brush"),
tableOutput("data")
)
server <- function(input, output, session) {
output$plot <- renderPlot({
ggplot(mtcars, aes(wt, mpg)) + geom_point()
}, res = 96)

output$data <- renderTable({
brushedPoints(mtcars, input$plot_brush)
})
}
shinyApp(ui=ui, server=server)

最佳答案

也许这可能会有所帮助。您可以在 reactiveValues 中跟踪哪个表(1 或 2)以及每个表的数据。让我知道这是否是您的想法。如果您想保留图中先前的选择,我认为您可能需要手动放置一个矩形。 github issue允许多选刷点是一个开放的问题(增强)。或者,您可以根据 this approach 为每个表标记点。 .

library(shiny)

ui <- fluidPage(
plotOutput("plot", brush = "plot_brush"),
h2("Table 1"),
tableOutput("data1"),
h2("Table 2"),
tableOutput("data2")
)

server <- function(input, output, session) {

rv <- reactiveValues(table = 1,
data1 = NULL,
data2 = NULL)

output$plot <- renderPlot({
ggplot(mtcars, aes(wt, mpg)) + geom_point()
}, res = 96)

my_data <- eventReactive(input$plot_brush, {
if (rv$table == 1) {
rv$table <- 2
rv$data1 <- input$plot_brush
} else {
rv$table <- 1
rv$data2 <- input$plot_brush
}
return(rv)
})

output$data1 <- renderTable({
brushedPoints(mtcars, my_data()$data1)
})

output$data2 <- renderTable({
brushedPoints(mtcars, my_data()$data2)
})

}

shinyApp(ui=ui, server=server)

关于r - 从 Shiny 的 R 中散点图的多个选择生成多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67870407/

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