2016-10-11 6 views
0

特定のノードが常に他のノードの上にレンダリングされるようにしています。これは可能ですか?上にノードがあるネットワークをレンダリングする

私は光沢のあるvisNetworkを使用しており、drlレイアウトのvisIgraphが必要です。 igraphはデータに現れるノードを描画するため、igraphだけを使用して他のノードの上にノードを描画することは可能です。これはvisNetworkのケースではないようです。

以下のコードでは、グループ「その他のグループ」を常に「青グループ」の上にレンダリングしたいと思います。小さなノードは大きなノードの上に表示されます。

require(shiny) 
require(visNetwork) 
require(igraph) 
require(gplots) 

nodes <- data.frame(id = 1:1000, color=colors()[350:449], stringsAsFactors=FALSE) 
nodes$group <- ifelse(grepl('blue',nodes$color), 'Blue Group', 'Other Group') 
nodes$color <- col2hex(nodes$color) 
nodes$color.background <- nodes$color 
edges <- data.frame(from = sample.int(1000,1500,replace=TRUE) 
        , to = sample.int(1000,1500,replace=TRUE)) 
g=graph_from_data_frame(edges, directed=FALSE, vertices=nodes) 

server <- function(input, output) { 
    output$network <- renderVisNetwork({ 
    # minimal example 
    withProgress(message = 'Making plot', value = .5, { 
     visIgraph(igraph=g, layout = "layout_with_drl", randomSeed = 1 
       , idToLabel=FALSE, type='square') %>% 
     visGroups(groupname = "Blue Group", value=5) %>% 
     visGroups(groupname = "Other Group", value=3) 
    }) 
    }) 
} 
ui <- fluidPage(
    visNetworkOutput("network") 
) 

shinyApp(ui = ui, server = server) 

ありがとうございます。

答えて

0

現在、vis.jsvisNetworkを使用することはできません。

0

あなたが設定され、vis.js内のノードにいくつかのlevel値を階層的なレイアウトを試すことができ、同じ階層が同じlevel値を持って、ここNodes Optionsで、あなたはhierarchicalLayoutWithoutPhysics

を参照することができます
関連する問題