我正在使用 R 创建一组 x,y 坐标来绘制组织结构图,并且正在努力获得非径向的布局。我将使用这些坐标在另一个应用程序中绘制图形,因此需要坐标而不是绘图。
我的数据是一个 2 列数据框,显示与列 EmployeeID、ManagerID 的报告关系。
我正在使用包 igraph 并首先使用以下方法创建一个图形:
g<-graph.data.frame(dataframe)
检查E(g)
我得到了我期望的边缘。绘制图形以径向形式给出正确的结构。
我的理解是 reingold.tilford 算法是我想用来获得传统非径向树的算法。所以我创建了一个布局:
l<-layout.reingold.tilford(g)
这应该给了我我的 x,y 坐标,但是当我看 l 时,我得到了类似的东西:
[,1] [,2]
[1,] 0.000000e+00 3
[2,] 0.000000e+00 3
[3,] 0.000000e+00 1
[4,] 1.899762e-52 3
[5,] 1.224168e-17 3
[6,] 6.582031e-85 3
[7,] 5.626306e+175 3
再次绘制图表:
plot(g,l)
给我一个警告信息:
In if (axes) { :
the condition has length > 1 and only the first element will be used
和以前一样的径向图。此外
summary(g)
给出:
IGRAPH DN-- 25 24 --
attr: name (v/c)