如何在R

时间:2018-04-22 04:09:31

标签: r layout igraph network-analysis

我一直在研究一个使用R中的igraph分析组织内部沟通的项目。

我已经在igraph包中准备了不同布局的一些通信网络图;例如,“很好”,“明星”,“fr”,“kk”。 但我仍然在寻找一种方法来绘制我在详细说明的布局中的图形。

具体的布局是:将某个节点“A”放在中心,然后将节点“A”放在其他节点上,这些节点有链接到节点“A”,依此类推。 举个例子,我想把一个组织的老板放在图表的中心,并把老板的其他成员放在其他成员身上,这些成员有重要的(按照沟通频率的权重)与老板沟通。

但是我不确定这种布局在数学和技术上是否可能在R中

提前感谢您的帮助!

- (稍后补充) -

虽然有些人已经回答了我的问题,但我担心我对这个问题的解释是不够的。对不起。

我想要做的是类似于“星”布局,但有点不同。对我来说,星形布局的一个问题是所有没有中心节点的节点都位于一个圆圈中。我的意思是,星星布局无法处理节点之间距离的信息,否则可以在力导向布局中处理,如“Fruchterman和Reingold”和“Kamada-Kawai”。

让我举个例子;一个像公司一样具有等级结构的正常组织。有一个老板和14名员工。我知道谁与谁沟通以及他们彼此沟通的频率。我担心的是谁与老板沟通,老板与谁沟通,以及这些沟通的频率。首先,我想把老板放在网络图的中心,其次,把老板和老板比其他员工有更多沟通的员工放在老板身边,最后,给他们带来更少或没有的其他员工。与老板沟通。我认为它看起来像蜘蛛网。

要点是;  的 1。图中某个节点(如boss)的中心位置。  2.根据通信频率,所有节点之间的距离(例如老板和员工之间的距离)。 换句话说,我认为我想要做的是在力导向布局图中将某个节点定位在中心。

但我既不是社交网络分析或图论的专家,所以我不确定我想要做的是数学上还是理论上可能。此外,我不确定它是否在技术上可能在R 中,即使它在数学上或理论上是可行的。

1 个答案:

答案 0 :(得分:0)

我不知道是否有可能与igraph有关,但我相信可以用qgraph做到这一点。您可以尝试使用与此类似的代码:

library(qgraph)
# run the qgraph function on the correlation matrix of mtcars and store it in q1
q1 <- qgraph(cor(mtcars))

在q1 $布局中,存储了qgraph变量的x坐标和y坐标。在这里,我首先通过取其余10个变量的x坐标的平均值来调整第6个变量的x坐标。随后,我对y坐标也这样做。

q1$layout[6,1] <- mean(q1$layout[c(1:5,7:11),1])
q1$layout[6,2] <- mean(q1$layout[c(1:5,7:11),2])

然后只绘制q1。它导致下面的图,中间有第6个“wt”变量。

enter image description here

您当然可以选择更改其他坐标,以使您的网络图更加漂亮。此外,您还可以在qgraph()函数内调整更多参数,以使您的网络更漂亮。 :)对不起我无法在igraph中提供解决方案,但我希望这也有用。