被験者がCrossValidatedの利益を得るかどうかはわかりません。教えてくれます。
私は(グラフ理論から)グラフを研究する必要があります。特定の数のドットが接続されています。すべてのドットと各ドットが依存しているドットを含むテーブルがあります。(私も含意を持つ別のテーブルを持っています)
私の質問は次のとおり
です。それを簡単に研究するための優れたソフトウェア(またはRパッケージ)はありますか?
グラフを表示する簡単な方法はありますか?
被験者がCrossValidatedの利益を得るかどうかはわかりません。教えてくれます。
私は(グラフ理論から)グラフを研究する必要があります。特定の数のドットが接続されています。すべてのドットと各ドットが依存しているドットを含むテーブルがあります。(私も含意を持つ別のテーブルを持っています)
私の質問は次のとおり
です。それを簡単に研究するための優れたソフトウェア(またはRパッケージ)はありますか?
グラフを表示する簡単な方法はありますか?
回答:
グラフに加えて、有向グラフと無向グラフ、発生率/隣接行列などを表すためのさまざまなパッケージがあります。たとえば、gRタスクビューを見てください。
視覚化と基本的な計算のために、igraphパッケージはRgraphviz(@Robが指摘したBioC上)に加えて、信頼できるものだと思います。後者が適切に機能するには、graphvizもインストールする必要があることに注意してください。IGRAPHのパッケージには、多くのように、良いレイアウトを作成するための素敵なアルゴリズムがあるgraphvizのを。
偽の隣接行列から始まる使用例を次に示します。
adj.mat <- matrix(sample(c(0,1), 9, replace=TRUE), nr=3)
g <- graph.adjacency(adj.mat)
plot(g)
別のオプションはstatnetパッケージです。Statnetには、SNAで一般的に使用されるすべてのメジャーに対する機能があり、ERGモデルを推定することもできます。エッジリストにデータがある場合は、次のようにデータを読み取ります(データフレームに「edgelist」というラベルが付けられていると仮定します)。
net <- as.network(edgelist, matrix.type = "edgelist", directed = TRUE) #if the network is directed, otherwise: directed = FALSE
データが隣接行列にある場合、matrix.type引数を「隣接」に置き換えます。
net <- as.network(edgelist, matrix.type = "adjacency", directed = TRUE)
statnetパッケージには、非常に優れたプロット機能があります。単純なプロットを行うには、単に次のように入力します。
gplot(net)
中間の中心性に応じてノードをスケーリングするには、次のようにします。
bet <- betweenness(net)
gplot(net, vertex.cex = bet)
デフォルトでは、gplot関数はノードを配置するためにFruchterman-Reingoldアルゴリズムを使用しますが、これはモードタイプから制御できます。たとえば、ノードタイプの配置にMDSを使用します。
gplot(net, vertex.cex, mode = "mds")
または円レイアウトを使用するには:
gplot(net, vertex.cex, mode = "circle")
さらに多くの可能性があり、このガイドではほとんどの基本的なオプションについて説明します。自己完結型の例:
net <- rgraph(20) #generate a random network with 20 nodes
bet <- betweenness(net) #calculate betweenness scores
gplot(net) #a simple plot
gplot(net, vertex.cex = bet/3) #nodes scaled according to their betweenness centrality, the measure is divided by 3 so the nodes don't become to big.
gplot(net, vertex.cex = bet/3, mode = "circle") #with a circle layout
gplot(net, vertex.cex = bet/3, mode = "circle", label = 1:20) #with node labels
同様の問題は、あなたが具体的に興味がある場合にも、cstheoryに頼まれた平面グラフ、または書誌可視化。
Gephiはすでにここで言及されていましたが、いくつかのcstheoryでも推奨されていたので、良い選択だと思います。
その他のクールなオプションは次のとおりです。
私が見つかりました。NodeXLは非常に有用で使いやすいです。これは、グラフの簡単なインポート/エクスポート、エッジ/頂点のフォーマット、いくつかのメトリックの計算、いくつかのクラスタリングアルゴリズムを提供するMS Excelテンプレートです。カスタム画像を頂点として簡単に使用できます。
私にとって便利なもう1つのツールは、Microsoft Automatic Graphレイアウトでした。これは、(SVGをサポートするブラウザーを使用して)オンラインで適切なレイアウトを試すことができます。