使用现有 R applications/packages 可视化协作网络结构
Visualizing collaboration network structure with existing R applications/packages
我正在尝试可视化 "joint venture" 的关系数据结构(即,公司在产品中与其他公司合作)。例如,公司 i 可能与公司 j 参与了合资企业 A,但公司 i 也与公司 j 和公司 k 参与了合资企业 B,等等,所以公司 i、j、k 都共享某种合作关系成员关系 ({i, j}, {i, j, k}),但公司 {i, j} 之间的协作强度强于公司 {i, k},因为公司 i 和 j 之间的合作更加联合冒险。
我想在那些标志性的网络图中形象化这一点,但强调不同二元组(公司)之间不同的关系强度。我想到的一个相关例子是 Mark Newman 在 PNAS 中的合着研究(Newman 2004),在图 6 中,每对节点(即作者)由不同厚度的边连接,代表强度每对作者之间的共同作者强度(即两者之间的合作作品数量),如下图所示:
我已经查看了一些与 R 的 igraph 和二分包有关的以前的帖子(例如 this one),但我认为二分网络及其应用不适合我在这里的目的。
我想知道 (1) 是否存在任何现有的 R packages/applications 可以帮助可视化网络中每个节点之间的连接强度,以及 (2) 这个结构应该如何数据类型是什么样的? (使用 'firm'、'project' 作为列或行?)
谢谢。
如@R.B 所述,您可以使用 visNetwork
库。带有虚构数据的代码可能如下所示:
library(igraph)
library(visNetwork)
set.seed(98765) # for reproducibility
### generate some data,
### nodes are entitities: letters represent contributors
nodes <- data.frame(id = 1:11,
label = LETTERS[1:11], # name of node
title = LETTERS[1:11]) # optional tooltip
### edges represent relations
edges <- data.frame(
from = sample(1:11, 50, replace = TRUE),
to = sample(1:11, 50, replace = TRUE),
arrows = "",
width = c(rep(1, 20), rep(4, 20), rep(6,6), rep(10, 3), 15) ## weights
)
visNetwork(nodes, edges, width = "100%") %>%
visIgraphLayout(layout = "layout_in_circle") %>%
visNodes(size = 25) %>%
visOptions(highlightNearest = list(enabled = F, hover = T) )
这会生成以下图(在 html 中互动)
请告诉我这是否是您想要的。
我正在尝试可视化 "joint venture" 的关系数据结构(即,公司在产品中与其他公司合作)。例如,公司 i 可能与公司 j 参与了合资企业 A,但公司 i 也与公司 j 和公司 k 参与了合资企业 B,等等,所以公司 i、j、k 都共享某种合作关系成员关系 ({i, j}, {i, j, k}),但公司 {i, j} 之间的协作强度强于公司 {i, k},因为公司 i 和 j 之间的合作更加联合冒险。
我想在那些标志性的网络图中形象化这一点,但强调不同二元组(公司)之间不同的关系强度。我想到的一个相关例子是 Mark Newman 在 PNAS 中的合着研究(Newman 2004),在图 6 中,每对节点(即作者)由不同厚度的边连接,代表强度每对作者之间的共同作者强度(即两者之间的合作作品数量),如下图所示:
我想知道 (1) 是否存在任何现有的 R packages/applications 可以帮助可视化网络中每个节点之间的连接强度,以及 (2) 这个结构应该如何数据类型是什么样的? (使用 'firm'、'project' 作为列或行?)
谢谢。
如@R.B 所述,您可以使用 visNetwork
库。带有虚构数据的代码可能如下所示:
library(igraph)
library(visNetwork)
set.seed(98765) # for reproducibility
### generate some data,
### nodes are entitities: letters represent contributors
nodes <- data.frame(id = 1:11,
label = LETTERS[1:11], # name of node
title = LETTERS[1:11]) # optional tooltip
### edges represent relations
edges <- data.frame(
from = sample(1:11, 50, replace = TRUE),
to = sample(1:11, 50, replace = TRUE),
arrows = "",
width = c(rep(1, 20), rep(4, 20), rep(6,6), rep(10, 3), 15) ## weights
)
visNetwork(nodes, edges, width = "100%") %>%
visIgraphLayout(layout = "layout_in_circle") %>%
visNodes(size = 25) %>%
visOptions(highlightNearest = list(enabled = F, hover = T) )
这会生成以下图(在 html 中互动)
请告诉我这是否是您想要的。