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)