R中的visNetwork

时间:2019-05-11 15:57:02

标签: r visnetwork

我正在使用visNetwork创建可视化文件 我希望这里有人帮助我逐步在R中创建可视化。我如何创建20个节点的可视化,并用边链接它们。谢谢

1 个答案:

答案 0 :(得分:1)

visNetwork依靠数据帧来指示节点名称和ID以及连接到所讨论节点的边缘。最少有20个节点的示例如下:

library(shiny)
library(visNetwork)

nodes <- data.frame(id = 1:20, label = 1:20)
edges <- data.frame(from = c(1:20), to = c(2:20,1))

server <- function(input, output, session) {
  output$myNetId <- renderVisNetwork({
    visNetwork(nodes, edges)
    })
}

ui <- fluidPage(
  visNetworkOutput("myNetId",
                   height <- "400px",
                   width <- "600")
)

shinyApp(ui <- ui, server <- server)

在导入所需的两个库之后,逐步进行操作,然后指定节点data.frame,如果要在节点旁边填充文本,则可以包含标签变量。我们刚刚指定了20个节点,从1到20。

edges变量表示一个边缘列表,data.frame中的每一行代表单个边缘的起点和终点。看起来像这样的data.frame:

data.frame(from = c(1,1), to = c(2,3))

...将从节点#1到节点#2和#3产生两条边。我将其设置为每个节点都连接到下一个顺序节点,例如一个圆。

服务器是ShinyApp对象,它使用“ myNetId”作为visNetwork应该如何操作的参考,而ui中的visNetworkOutput()函数充当画布,指示网络应在屏幕上显示的位置。您可以使用>%>向visNetwork()函数添加其他参数,如下所示:

  visNetwork(nodes, edges) %>%
      visPhysics(solver = "barnesHut",
                 minVelocity = 0.1,
                 forceAtlas2Based = list(gravitationalConstant = -150)) %>%
      visOptions(manipulation = TRUE, highlightNearest = FALSE) %>%
      visEdges(arrows = 'to')

希望有帮助!