我正在尝试确保某些节点始终在其他节点上呈现,并且很难这样做。这可能吗?
我正在使用带有光泽的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)
提前致谢。
答案 0 :(得分:0)
我认为目前无法使用vis.js
和visNetwork
。
答案 1 :(得分:0)
您可以在vis.js中尝试分层布局,将一些level
值设置为节点,相同的层次结构具有相同的level
值,此处为Nodes Options,您可以参考{{ 3}}