5

非常に大きなエッジ リストがあり、特定の重みを持つエッジのみをプロットしたいのですが、どうすればよいですか?

私はこれまで試してきました

plot.graph(E(sgdf)[E(sgdf)$weight==3]))

しかし、私はいつもこのエラーが発生します

Error in V(g) : Not a graph object
4

1 に答える 1

14

最初にグラフをコピーし、不要なエッジを削除して、残りをプロットします。

> sgdf.copy <- delete.edges(sgdf, which(E(sgdf)$weight != 3)-1)
> plot(sgdf.copy)

igraph は 0 ベースのエッジ インデックスを使用するのに対し、R は 1 ベースのインデックスを使用するため、-1が必要です。delete.edges

更新: 匿名の編集者 (編集は残念ながら拒否されました) が指摘したように、igraph は igraph 0.6 以降から 1 ベースのエッジ インデックスを使用します。したがって、igraph 0.5.x 以前を使用している場合にのみ 1 を引きます。

于 2012-06-05T08:36:02.060 に答える