这里是一个非常粗糙,但工作,一个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)
完美的作品,非常感谢! 任何机会,你可以带领我的文档或一些资源有关clickAction函数兼容闪亮?我想探索更多的可能性。再次感谢! –
我是networkD3的维护者之一,但并不是很多Shiny用户,所以我没有给你一个很好的建议。但是,考虑到Shiny.onInputChange()函数只是将一个值赋给一个可以在R中访问的对象,所以大部分的可能性可能都是您已经熟悉的。 –