首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的visNetwork

R中的visNetwork
EN

Stack Overflow用户
提问于 2019-05-11 23:57:02
回答 1查看 264关注 0票数 0

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

EN

回答 1

Stack Overflow用户

发布于 2019-05-25 09:37:29

visNetwork依靠数据帧来指示节点名称和id,以及连接到相关节点的边。20个节点的最小示例如下:

代码语言:javascript
复制
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:

代码语言:javascript
复制
data.frame(from = c(1,1), to = c(2,3))

..。将产生从节点#1到节点#2和节点#3的两条边。我已经对其进行了设置,以便每个节点都像圆一样连接到下一个连续的节点。

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

代码语言:javascript
复制
  visNetwork(nodes, edges) %>%
      visPhysics(solver = "barnesHut",
                 minVelocity = 0.1,
                 forceAtlas2Based = list(gravitationalConstant = -150)) %>%
      visOptions(manipulation = TRUE, highlightNearest = FALSE) %>%
      visEdges(arrows = 'to')

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56091963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档