私は描画したい単純な方向関係(parent-> child)を持っています。私のデータは、多くの個別のサブネットワークが存在するように構成されています。私のような偽のデータがあります。igraphを使ってRに複数の離散ネットワークを描画する
require(igraph)
parents<-c("A","A","C","C","F","F","H","I")
children<-c("B","C","D","E","G","H","I","J")
begats<-data.frame(parents=parents,children=children)
graph_begats<-graph.data.frame(begats)
plot(graph_begats)
偽データには2つの異なるサブネットワークがあり、それぞれ厳密に親子系統です。私は両方の系統を同じウィンドウ(理想的には同じ頂点座標系)にツリーネットワークとして描画する必要があります。私はlayout.reingold.tilford()を使ってみましたが、せいぜい私が描くことができるのはツリーの1つで、他のすべての頂点がルート頂点の上にプロットしています。
lo<-layout.reingold.tilford(graph_begats,root=1)
plot(graph_begats,layout=lo)
任意の数の離散系統に対してこれを行うためのアイデアはありますか?
I a)はデータセット内の離散的な系列の数を計算し、B)その系統の各頂点を割り当てる方法を見つけ出すことができれば、私は道の75%であろう私の問題の解決策。 –
'clusters()'や 'decompose.graph()'を使ってネットワークを分割し、それぞれのレイアウトを別々に計算した後、レイアウトマトリックスの1つをシフトしてマージします。 –
はい! 'decompose.graph()'が必要です。まだ行列のシフトに取り組んでいますが、私はそこに着いています。 –