2016-10-10 11 views
0

VisNetworkでネットワークを構築し、それをShinyに配備しました。私の質問は次のとおりです。ノードをクリックすると、n番目の次数に近い最近隣をハイライト表示します(デフォルト= 1)。ノードとそのネイバーだけでサブネットワークを描画し、そのノードをクリックしてネットワーク全体に戻ることは可能ですか?VisNetworkでノードを選択した後のサブネットワーク/サブグラフをプロットする

だから以下のコードで、私はネットワークを作成し、最近傍の選択を可能にし、私はノードを選択することができ、

、ありがとうございました。サブネットワークのみを再描画する方法がわかりません。

server <- function(input, output) { 
output$network_proxy <- renderVisNetwork({ 
visNetwork(my.nodes, my.edges, 
      height = "100%", width = "100%", 
      main = "") %>% 
    #visExport() %>% 
    visOptions(highlightNearest = list(enabled = T, degree = 1, hover = T, algorithm = "hierarchical"), 
      nodesIdSelection = list(enabled = TRUE, selected = "First Data", style = 'width: 200px; height: 26px; 
           background: #f8f8f8; 
           color: darkblue; 
           border:none; 
           outline:none;'), 
      selectedBy = list(variable = "Role", selected ="", 
         multiple =TRUE, style = 'width: 200px; height: 26px; 
           background: #f8f8f8; 
           color: darkblue; 
           border:none; 
           outline:none;'), 
      autoResize = TRUE)%>% 
    visInteraction(keyboard = TRUE, 
       navigationButtons = TRUE, 
       dragView = TRUE, 
       dragNodes = TRUE,     
       hideEdgesOnDrag = TRUE, 
       tooltipDelay = 0, 
       hover = TRUE, 
       hoverConnectedEdges =FALSE, 
       multiselect = TRUE)%>%  
    visEvents(hoverNode = "function(nodes){ 
      Shiny.onInputChange('current_node_id',nodes); 
      ;}", 
      select = "function(nodes){ 
      Shiny.onInputChange('current_node_id',nodes); 
      ;}") 
}) 

    output$shiny_return <- renderPrint({ 
    if(!is.null(input$current_node_id)){ 
    input$current_node_id 
    } 
    }) 
} #end server 

ui <- fluidPage( 
    mainPanel(
    visNetworkOutput("network_proxy"), 
    verbatimTextOutput("shiny_return")  
) 
) 

答えて

1

degree使用して、(例えば、ノードの数に等しい)高い数を設定し、全体の完全なネットワークハイライトを得ることができます。

visNetwork(nodes, edges) %>% 
    visOptions(highlightNearest = list(enabled = TRUE, degree = 100)) 

は実際には、ネットワークの他の部分は灰色で色ですが、望んでいた場合、私はすぐにそれを制御するための新しいオプションを追加し、そのネットワークの一部を隠されます。 (https://github.com/datastorm-open/visNetwork/issues/98

+0

よろしくお願い致します。これは素晴らしいパッケージです。 – AquieJo

関連する問題