【问题标题】:How to plot a graph in the specific layout in R如何在R中的特定布局中绘制图形
【发布时间】:2018-04-22 04:09:30
【问题描述】:

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

我已经制作了一些不同布局的通信网络图,这些图已经准备在 igraph 包中;例如,“nicely”、“star”、“fr”、“kk”。 但我仍在寻找一种在我详细指定的布局中绘制图表的方法。

具体来说,具体的布局是:将某个节点“A”放在中间,然后在节点“A”周围放置其他与节点“A”有链接的节点,以此类推。 > 例如,我想将一个组织的老板放在图表的中心,并在老板周围放置其他与老板有重要(根据沟通频率的权重)沟通的成员。

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

提前感谢您的帮助!

--(稍后添加)--

虽然你们中的一些人已经回答了我的问题,但恐怕我对问题的解释不够充分。对不起。

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

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

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

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

【问题讨论】:

  • 你提到了 igraph 中的星形布局。如果只有一个老板,那会做你想做的事。你的意思是你的结构中有多个老板?老板的等级制度?除了老板和员工还有沟通吗?我认为您需要提供一个您希望绘制的组织类型的示例。
  • 你说得对,G5W。其实我想做的和星型布局很相似。但这也与我的理想形象有些不同。我将在问题中添加有关星形布局有什么问题的更多信息,因此请稍后查看我的问题。

标签: r layout igraph network-analysis


【解决方案1】:

我不知道是否有可能使用 igraph,但我确信使用 qgraph 可以做到这一点。你可以用类似下面的代码试试:

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

在 q1$layout 中存储了 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”变量。

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

【讨论】:

  • 嗨,莱恩。感谢您的意见。我不知道这样的包裹。但我认为你的情节布局类似于“星形”布局。我已经用 ggraph、giraph 和 igraph 制作了类似的图表。我想做的类似于“星”布局和你的情节,但两者都有点不同。稍后我将使用更多信息编辑我的问题,所以请您稍后看一下吗?但我很感激你的建议。
  • 您可以将 qgraph 中的布局参数设置为“spring”以应用 Früchterman Reingold 算法。然后它将此算法应用于网络中的所有节点,然后您可以通过将 x 和 y 坐标调整为“boss”变量的均值,以同样的方式调整“boss”变量的坐标。此外,还可以通过定义 layout.par 参数直接在 Früchterman-Reingold 算法上添加约束。在那里,您可以为所有坐标添加软约束和硬约束。您可以查看 qgraph.layout.fruchtermanreingold 的文档。
猜你喜欢
  • 2012-12-16
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多