0

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

4

1 回答 1

2

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,如果您希望文本在节点旁边填充,它可以包含一个标签变量。我们刚刚指定了从 1 到 20 的 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')

希望有帮助!

于 2019-05-25T01:37:29.040 回答