R/Javascript:崩溃和扩展的网络

2024-04-25

我正在使用 R 编程语言。

我有以下图形网络数据:

library(igraph)
library(visNetwork)

from <- c("Boss", "TeamA", "TeamA", "TeamA", "SubteamA1", "SubteamA1", "SubteamA1", "SubteamA2", "SubteamA2", "SubteamA2", "SubteamA3", "SubteamA3", "SubteamA3")
to <- c("TeamA", "SubteamA1", "SubteamA2", "SubteamA3", "employee1", "employee2", "employee3", "employee4", "employee5", "employee6", "employee7", "employee8", "employee9")
a1 = data_frame <- data.frame(from, to)


from <- c("Boss", "TeamB", "TeamB", "TeamB", "SubteamB1", "SubteamB1", "SubteamB1", "SubteamB2", "SubteamB2", "SubteamB2", "SubteamB3", "SubteamB3", "SubteamB3")
to <- c("TeamB", "SubteamB1", "SubteamB2", "SubteamB3", "employee10", "employee11", "employee12", "employee13", "employee14", "employee15", "employee16", "employee17", "employee18")
a2 = data_frame <- data.frame(from, to)


final = rbind(a1, a2)

然后我将其制作成图形网络并将其可视化:

# Convert the data frame to an igraph object
g <- graph_from_data_frame(final, directed=FALSE)

# Plot the graph
plot(g)

# Optional visualization
visIgraph(g)

visIgraph(g) %>%
  visHierarchicalLayout(direction = "LR") %>%
  visInteraction(navigation = "zoom") %>%
  visInteraction(navigation = "drag") %>%
  visOptions(selectedBy = "to", 
             highlightNearest = TRUE, 
             nodesIdSelection = TRUE) 

我的问题:我一直在尝试寻找是否有某种方法,当你运行图表时,它只在屏幕上显示一个节点(老板节点) - 当你点击老板节点时,它会扩展到 3 个节点(老板,团队 a) ,团队 b),如果您单击“团队 a”,它会展开为子团队...但如果您双击,它会折叠回上一层。

我能找到的最接近的东西在这里:https://github.com/datastorm-open/visNetwork/issues/307 https://github.com/datastorm-open/visNetwork/issues/307

但是在 R/javascript 中是否有一些更简单的方法可以做到这一点?最后,最终输出应该是一个可以离线查看的(独立)HTML 文件。

Thanks!

Note:

  • 我对闪亮的网络应用程序不感兴趣。
  • 我会寻找这样的东西:可折叠力导向图上的 D3.js 标题 https://stackoverflow.com/questions/26747638/d3-js-titles-on-collapsible-force-directed-graph , 如何在 d3.js 中折叠(显示和隐藏)父节点的子节点? https://stackoverflow.com/questions/57175630/how-can-i-collapse-show-and-hide-the-child-nodes-of-a-parent-node-in-d3-js, 通过选择器以编程方式访问 d3.js v6 可折叠树中的数据 https://stackoverflow.com/questions/67596316/programmatic-access-of-data-in-d3-js-v6-collapsible-tree-via-selectors, R collapsibleTree:在工具提示中动态添加图像 https://stackoverflow.com/questions/47828655/r-collapsibletree-add-images-dynamically-in-tooltip
  • 如果它有一个搜索栏和一个“缩小”选项,这将非常有趣:https://search.r-project.org/CRAN/refmans/collapsibleTree/html/collapsibleTreeNetwork.html https://search.r-project.org/CRAN/refmans/collapsibleTree/html/collapsibleTreeNetwork.html , https://cran.r-project.org/web/packages/collapsibleTree/readme/README.html https://cran.r-project.org/web/packages/collapsibleTree/readme/README.html, https://adeelk93.github.io/collapsibleTree/ https://adeelk93.github.io/collapsibleTree/

一个选项可以使用visOptionscollapse争论:

:自定义选项。只是一个布尔值或一个命名列表。坍塌 / 使用双击展开节点。在开发中。

因此,这使得双击节点时可以折叠。您可以更改形状,使其在折叠时具有不同的形状。这是一些可重现的代码:

library(igraph)
library(visNetwork)

visIgraph(g) %>%
  visInteraction(navigation = "zoom") %>%
  visInteraction(navigation = "drag") %>%
  visOptions(collapse = list(enabled = TRUE, keepCoord = TRUE, clusterOptions = list(shape = "circle"))) 

Created on 2023-01-30 with reprex v2.0.2 https://reprex.tidyverse.org

当点击你的老板节点时:

或者以 TeamS 为例:


  1. 是否可以删除每个节点上的“集群”标签?

你可以添加label = FALSE像这样:

visIgraph(g) %>%
  visInteraction(navigation = "zoom") %>%
  visInteraction(navigation = "drag") %>%
  visOptions(collapse = list(enabled = TRUE, keepCoord = TRUE, clusterOptions = list(shape = "circle", label = FALSE)))

B 队示例:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R/Javascript:崩溃和扩展的网络 的相关文章

随机推荐