這裏是一個非常粗糙,但工作,一個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中訪問的對象,所以大部分的可能性可能都是您已經熟悉的。 –