javascript - 从networkd3中提取节点信息到shiny中的 react 变量

标签 javascript r shiny networkd3

我在 Shiny 中使用 networkd3 包时遇到了困难。 我绘制了一个图表,并希望以 react 方式将节点信息提取回 Shiny 的状态,以可视化有关某个节点的更多信息。 例如,中心节点为“Father”和其他“Son1”...“SonN”的星图。单击 Son 节点后,我希望能够访问 Shiny 的“Son1”名称,以从 Shiny 的数据框中提取信息并可视化附加信息(例如工作、年龄等)。 例如,我能够使用 clickAction 在屏幕上显示一条消息:

forceNetwork(....., clickAction= 'alert(d.name)')

但我不知道如何让这个 d.name 值恢复为 Shiny ,所以我可以进一步使用它,并且在开始运行 Shiny 时我不会收到错误,因为 d.name 不存在于开始(也许在这里观察函数?)我基本上需要一个相当于 DT 包 input$table_rows_selected

最佳答案

这是一个非常粗糙但有效的 networkD3 forceNetwork 图示例,它在点击时返回一个值(使用 clickAction = 'Shiny.onInputChange("id ", d.name)'),然后用于显示具有该名称的数据框。

library(shiny)
library(networkD3)

links <- read.table(header = T, text = '
source target value
0 1 1
0 2 1
')

nodes <- read.table(header = T, text = '
name group
dad 1
son1 1
son2 1
')

son1 <- read.table(text = '
name John
age 18
')

son2 <- read.table(text = '
name Mark
age 14
')

ui <- shinyUI(fluidPage(
    fluidRow(
        column(4, forceNetworkOutput("force")),
        column(4, DT::dataTableOutput("table"))
    )
))

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

  output$force <- renderForceNetwork({
    forceNetwork(Links = links, Nodes = nodes, Source = "source",
                 Target = "target", Value = "value", NodeID = "name",
                 Group = "group", opacity = 1, opacityNoHover = 1, 
                 clickAction = 'Shiny.onInputChange("id", d.name)')
  })

  output$table <- DT::renderDataTable(DT::datatable(get(input$id)))

})

shinyApp(ui = ui, server = server)

关于javascript - 从networkd3中提取节点信息到shiny中的 react 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45217609/

相关文章:

javascript - Node JS 加密 : wrong password while decrypt

javascript - 当条件为 false 时 ng-show 隐藏元素的延迟

javascript - 使用 JavaScript/jQuery,如何删除所选文本的 HTML 标签?

miktex 和 pandoc 的相对系统路径 - 打包为 Windows 桌面应用程序的 Shiny 应用程序

r - 如何在不闪烁的情况下更新 Shiny 中的值?

r - 更改 withProgress() 生成的消息框的样式和位置

javascript - 动态传递父对象作为 JavaScript 中的参数

使用replicate() 或sapply() 重复用户定义的函数

r - 对于循环存储问题

r - 根据发生概率填充缺失值