2017-07-03 23 views
1

我试图想象“合资企业”(即企业与产品中的其他人协作)的关系数据结构。例如,我公司可能会与j公司参与合资公司A,但我公司也会参与与j公司和k公司k的合资企业B,因此,公司i,j,k都共享某种合作模式,成员关系({i,j},{i,j,k}),但公司{i,j}之间的合作力度要强于{i,k}合资企业。使用现有的R应用程序/软件包可视化协作网络结构

我会在这些标志性的网络图中想象这一点,但强调关系的强度因不同的二元组(企业)而异。我想到的一个相关示例是Mark Newman在PNAS(Newman 2004)中的合着研究,在图6中,每对节点(即作者)通过不同厚度的边连接,表示合着作者的强度(即,在两者之间的协同工作的数)所示的每对作者之间的强度,如图片:

From Newman (2004) 我已经检查了一些以前的职位(例如this one)与R有关的的igraph和两方包,但不要认为双方网络及其应用适合我的目的。

我想知道(1)是否有任何现有的R软件包/应用程序可以帮助可视化网络中每个节点之间的连接强度,以及(2)这种类型的数据的结构应该如何看起来像? (使用'公司','项目'作为列或行?)

谢谢。

+1

你可以使用visNetwork软件包来创建这样的图形 –

+0

我遵循你的和@ KoenV的建议,它运行良好。谢谢! –

回答

1

正如@ 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互动)

enter image description here

请让我知道这是否是你想要的。

+0

非常感谢您花时间说明这一点!我应该能够推送visNetwork代码,添加一些化妆品(例如,用节点名称标记节点)等。 但是,visIgraphLayout(layout =“layout_in_circle”)%>%命令行似乎不起作用在我的Rstudio上,R返回错误信息“Can not find'layout_in_circle'function,Please verify it。”我也试过使用默认的'layout_nicely',但它仍然不起作用。 我对visNetwork相当陌生,是一个编程错误? –

+1

安装并加载'igraph'软件包后请再试一次,请让我知道它是否可用。 – KoenV

+0

再次感谢!我删除了旧版本并重新安装了igraph,现在它可以工作。非常感谢。 –

相关问题