0

neighbourNets は比較的人気があるにもかかわらず、次の問題に対する解決策を見つけることができませんでした。phangornR では、neighborNet (package 、オブジェクト クラス networxを使用して作成) をプロットしようとしています。パッケージはigraph静的な2Dグラフのプロットに使用するため、グラフを再プロットするたびに、レイアウトが変更/回転します(igraph明らかに、のデフォルト動作)。ここで、通常の igraph をプロットする場合は、レイアウトを保存して、それを再利用し続けます。

fixed = layout.sphere(somegraph)
plot(somegraph, layout=fixed)

しかし、これは現在の問題では機能しません。plot.networx のヘルプ ファイルは、igraph とレイアウトを参照していますが、「参照」セクションのみです。xy 座標マトリックスを手動で作成しても (ここで提案されているように) 機能しません。ノード ラベル/ノードのヒントの位置は、近隣ネットワークでは重要です。私は試した

library("phangorn")
library("igraph")
mydist = dist(matrix(sample(100), ncol=10))  # example data
nnet = neighborNet(mydist)
fixed = layout.sphere(nnet)  # error, Not a graph object
fixed = layout.sphere(as.igraph(nnet))  # doesn't work properly, mangled graph

したがって、問題は、それをどのように機能させるかということです

plot.networx(nnet, type="2D", layout = fixed)  # ?
4

1 に答える 1

0

plot.networxphangorn:::coords(2Dの場合)igraphオブジェクトを作成してから使用する座標を取得するための呼び出しlayout.kamada.kawai。これはすべてハードコードされてplot.networxいるため、別のレイアウト アルゴリズムを使用できるほど柔軟ではありません。

コードに従ってphangorn:::coordsグラフ レイアウトを作成し、レイアウト関数を別のものに置き換えてから、phangorn:::plot2Dそれらの座標で呼び出すことができます。正しいplot.networx呼び出し方法については、 を参照してください。phangorn:::plot2D

于 2015-07-09T16:43:28.220 に答える