首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用visNetwork动态更新R节点

使用visNetwork动态更新R节点
EN

Stack Overflow用户
提问于 2018-01-05 06:20:09
回答 2查看 910关注 0票数 0

下面的快照可视化是使用"visNetwork“包创建的。这里我的要求是,我必须硬编码边,而且在使用visHierarchicalLayout()之后,我无法按顺序看到它们,请用动态方法帮助我,这样无论有多少个数字,我都可以在没有硬代码的情况下得到连续的数字。谢谢,请帮忙。

代码语言:javascript
复制
library(visNetwork)
nodes <- data.frame(id = 1:7, label = 1:7)
edges <- data.frame(from = c(1,2,3,4,5,6),
                  to = c(2,3,4,5,6,7))
visNetwork(nodes, edges, width = "100%") %>% 
visEdges(arrows = "to") %>% 
visHierarchicalLayout()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-05 08:27:21

使用level属性完成任务,它根据给定的顺序对网络进行对齐。

代码语言:javascript
复制
library(visNetwork)
nodes <- data.frame(id = 1:7, label = 1:7, level = 1:7)
# Extract the id
num <- nodes$id
# Repeat the numbers
num2 <- rep(num, each = 2)
# Remove the first and last numbers
num3 <- num2[c(-1, -length(num2))]
#Create a data frame
edges <- as.data.frame(matrix(num3, ncol = 2, byrow = TRUE))
names(edges) <- c("from", "to")
visNetwork(nodes, edges, width = "100%") %>% 
visEdges(arrows = "to") %>% 
visHierarchicalLayout()
票数 1
EN

Stack Overflow用户

发布于 2018-01-05 06:29:55

如果我正确理解了您的问题,您希望基于edges数据框架中的id创建nodes数据框架。这里有一个选择。

代码语言:javascript
复制
# Extract the id
num <- nodes$id

# Repeat the numbers
num2 <- rep(num, each = 2)

# Remove the first and last numbers
num3 <- num2[c(-1, -length(num2))]

# Create a data frame
edges <- as.data.frame(matrix(num3, ncol = 2, byrow = TRUE))
names(edges) <- c("from", "to")

edges
#   from to
# 1    1  2
# 2    2  3
# 3    3  4
# 4    4  5
# 5    5  6
# 6    6  7 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48108231

复制
相关文章

相似问题

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