R を使用して一連の x、y 座標を作成し、組織図をプロットしていますが、非放射状のレイアウトを取得するのに苦労しています。これらの座標を使用して別のアプリケーションでグラフをプロットするため、プロットではなく座標が必要です。
私のデータは、列 EmployeeID、ManagerID とのレポート関係を示す 2 列のデータ フレームです。
パッケージ 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)