【问题标题】:Render network with nodes on top渲染网络,顶部有节点
【发布时间】:2016-10-11 07:00:25
【问题描述】:

我正在尝试确保某些节点始终呈现在其他节点之上,并且很难做到这一点。这可能吗?

我正在使用带有闪亮的 visNetwork,并希望将 visIgraph 用于 drl 布局。可以单独使用 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)

提前致谢。

【问题讨论】:

    标签: r shiny nodes igraph vis.js


    【解决方案1】:

    我认为目前无法使用vis.jsvisNetwork

    【讨论】:

      【解决方案2】:

      你可以在vis.js中尝试分层布局,给Nodes设置一些level的值,相同的层次有相同的level值,这里是Nodes Options,可以参考hierarchicalLayoutWithoutPhysics

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 2014-11-03
        • 1970-01-01
        • 2015-09-08
        • 2018-10-26
        相关资源
        最近更新 更多