【问题标题】:How to specify nodes' positions in visNetwork package in R如何在 R 的 visNetwork 包中指定节点的位置
【发布时间】:2017-12-04 18:37:05
【问题描述】:

我想将节点的位置固定在 (1,0)、(0,1)、(-1,0)、(0,-1) 和 (0,0)。但是,它不起作用,我的 Java 知识为零(似乎,here 是关于 Java 代码的问题)。

有人可以帮忙吗?这是一个例子:

require(visNetwork, quietly = TRUE)
nodes <- data.frame(id = 1:5)
                    # x = c(1, 0, -1, 0, 0), 
                    # y = c(0, 1, 0, -1, 0))
edges <- data.frame(from = c(1,2), to = c(1,3))

visNetwork(nodes, edges, width = "100%") %>%
  visNodes(x = c(1, 0, -1, 0, 0), 
           y = c(0, 1, 0, -1, 0), fixed = TRUE, physics = TRUE) %>%
  visOptions(highlightNearest = TRUE) %>%
  visInteraction(navigationButtons = TRUE, dragNodes = FALSE, 
                 dragView = FALSE, zoomView = FALSE) %>%
  visEdges(arrows = 'from')

【问题讨论】:

  • 这和Java有什么关系?
  • R-package 是基于 Java 的(我理解的),我担心你需要理解 Java 才能解决这个问题。查看我的编辑...
  • R-package 基于 Javascript 库 vis.js,而不是 Java。

标签: r visnetwork


【解决方案1】:

你可以的

coords <- matrix(ncol=2, byrow=T, data=c(
  1,0,
  0,1,
  -1,0,
  0,-1,
  0,0))
opts <- . %>% visOptions(highlightNearest = TRUE) %>%
  visInteraction(navigationButtons = TRUE, dragNodes = FALSE, 
                 dragView = FALSE, zoomView = FALSE) %>%
  visEdges(arrows = 'from') 

visNetwork(nodes, edges, width = "100%") %>%
  visIgraphLayout(layout = "layout.norm", layoutMatrix = coords) %>% 
  opts

nodes$x <- c(1, 0, -1, 0, 0)*100
nodes$y <- c(0, 1, 0, -1, 0)*100
visNetwork(nodes, edges, width = "100%") %>% 
  visNodes(fixed = TRUE) %>% 
  opts

如有必要,使用coords[,2] &lt;- coords[,2]*-1 翻转垂直轴。

【讨论】:

  • 好的。但是你明白visNodes(x =, y=) 参数是什么意思吗?
  • 而且似乎也不需要fixed = TRUE, physics = TRUE
  • @Christoph 实际上没看到,我的错。似乎它意味着你认为它意味着什么。将这些添加到您的数据框中,visNodes 从那里获取它:nodes$x &lt;- c(1, 0, -1, 0, 0)*100;nodes$y &lt;- c(0, 1, 0, -1, 0)*100;visNetwork(nodes, edges, width = "100%") %&gt;% visNodes(fixed = TRUE)。但是,我不知道默认坐标系的限制是什么。
  • @lukeA,请查看类似行的帖子,我需要帮助。 stackoverflow.com/questions/48108231/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 2017-01-19
相关资源
最近更新 更多