微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我使用手动坐标获取网络图的子集时,为什么缩放会发生变化?

如何解决当我使用手动坐标获取网络图的子集时,为什么缩放会发生变化?

对于这个项目,我正在创建几个网络图,但缩放是关闭的。第一个网络图包括所有节点/类别并且相当大。其他网络图是完整网络图的子集。我为每个子集使用与完整图形相同的坐标以维护结构。问题是,每当我创建一个子集网络时,尽管手动设置了坐标,但缩放完全关闭

完整的网络如下所示:

enter image description here

nodes<- read_csv("node_coords.csv")
viz_all <- visNetwork(sort(gvis$nodes),gvis$edges,main="All Connections",width = "100%",height = "850px") %>%
  visLayout(randomSeed = 123) %>%
  visEdges(smooth =T,arrows =list(to = list(enabled = TRUE,scaleFactor = .5)),color = list(highlight = "black"))  %>% #https://datastorm-open.github.io/visNetwork/edges.html
  visPhysics(stabilization = FALSE)  %>%
  visIgraphLayout(smooth=FALSE,physics=FALSE,layout="layout_with_fr",layoutMatrix = gcoords) %>%
  visLayout(randomSeed=123,improvedLayout = TRUE)%>%
  visInteraction(navigationButtons = TRUE)%>%
  visOptions(selectedBy = list(variable = c("program"),multiple = TRUE),highlightNearest = list(enabled = T,hover = T),nodesIdSelection = TRUE)%>%
  addFontAwesome() %>%
  visLegend(position = "left",addNodes = lnodes,useGroups = FALSE,stepY=100)

viz_all$x$nodes <- viz_all$x$nodes %>% left_join(nodes,by = 'id') %>% select(-c('x.x','y.x')) %>% rename(x = x.y,y=y.y)

viz_all

子集的一个例子是这样的:

enter image description here

viz_ag <- visNetwork(sort(gvis_agriculture$nodes),gvis_agriculture$edges,main="Agriculture Subset",color = list(color = "lightblue",highlight = "black"))  %>% #https://datastorm-open.github.io/visNetwork/edges.html
  visPhysics(stabilization = FALSE)  %>%
  visIgraphLayout(smooth=FALSE,layout="layout_with_fr") %>%
  visLayout(randomSeed = 123,stepY=100)

viz_ag$x$nodes <- viz_ag$x$nodes %>% left_join(nodes,y=y.y)

viz_ag

无论如何要维护子集中第一个网络图的结构?或者,也许我攻击这一切都是错误的?

解决方法

不确定这是否会有所帮助,因为这只是一种预感。但是根据我对图网络的理解,节点的大小通常与其重要性有关。更多的连接/边 = 更大的尺寸(相对于其他节点)。我怀疑在简化模型中,由于省略了某些其他节点和边,某些节点的相对重要性会发生巨大变化。我认为您的问题更多地与节点大小有关,而不是您设置的坐标(也许)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。