gpt4 book ai didi

javascript - Shiny 的 r : clear selected rows from data table by click on plot

转载 作者:行者123 更新时间:2023-11-29 19:18:24 25 4
gpt4 key购买 nike

使用 ShinyR 和数据表,我们可以创建交互式绘图。当用户在数据表中选择一行时,它会在图表中显示特定的颜色和形状。当我们取消选择该行时,点增益正常情况。示例修改自 ( Shiny apps )。

此外,我们可以识别图表上的特定点(我们感兴趣)(使用nearPoints)

我希望用户能够通过单击图表上的特定点来取消选择该行。一旦用户单击图表上的点,它将获得正常外观。

但是,我找不到让它工作的函数。新的 DT 库(DT 包)中有一个 proxyselectRows 函数(但对于 Mac,它不可用)。 Example

另一种选择是在 callback 中编写和选择 javascript 代码,但我在这方面的知识有限。

如有任何意见和建议,我们将不胜感激。

界面

library(shiny)
library(DT)

fluidPage(
title = 'Select Table Rows',
fluidRow(
column(6, DT::dataTableOutput('x1')),
column(6, plotOutput('x2', height = 500,click = "plot_click"),
verbatimTextOutput("info"))
)
)

服务器

shinyServer(function(input, output, session) {  
output$x1 = DT::renderDataTable(cars, server = FALSE)
# highlight selected rows in the scatterplot
output$x2 = renderPlot({
s = input$x1_rows_selected
par(mar = c(4, 4, 1, .1))
plot(cars)
if (length(s)) points(cars[s, , drop = FALSE], pch = 19, cex = 2)
})
output$info <- renderPrint({
paste("Selected point row.name - ", row.names(nearPoints(cars, input$plot_click, xvar = "speed", yvar = "dist")), sep="")
})
})

最佳答案

使用新版本的 DT 它可以与 proxy 完美配合

proxy = dataTableProxy('x1')
observeEvent(input$plot_click, {
removeRow <- as.numeric(row.names(nearPoints(cars, input$plot_click, xvar = "speed", yvar = "dist")))
selectRows(proxy, input$x1_rows_selected[!input$x1_rows_selected %in% removeRow])
})

关于javascript - Shiny 的 r : clear selected rows from data table by click on plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160990/

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