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

问题描述

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

完整的网络如下所示:

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

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

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...