0

初めて python + igraph 0.6 を使用していますが、いくつかの基本的な質問があります。

まず、ランダム グラフを作成し、そのグラフのどこかにクリークを挿入します。

from igraph import *
g = Graph.Erdos_Renyi(50,0.1)
h = Graph.Full(5)

グラフ g に 2 つのエッジで接続された h を持つ新しいグラフ g2 を作成するにはどうすればよいですか?

第二に、これを行った後、最大のクリークを見つけて、それらがどこにあるかを写真で示したいと思います。結合グラフを g2 と呼びます。

mcliques = g2.maximal_cliques(4, 7)

見つけたばかりのクリークを個別に、またはグラフ g2 にプロットするにはどうすればよいでしょうか?

4

1 に答える 1

7

最初の質問への回答:

g2 = g + h
g2.add_edges([(0, 50), (1, 51)])

またはさらに簡単:

g2 = g + h + [(0, 50), (1, 51)]

ここでは、+2つのグラフ間の演算子が、2つのグラフの非交和を作成するという事実を利用します。また、常に連続する頂点ID範囲を使用するため、頂点0〜49がスパンし、igraph頂点50〜54がスパンすることを簡単に知ることができます。スパン。g2gh

2番目の質問に関して、クリークをプロットすることによって正確に何を意味するのかを指定しませんでしたが、考えられる解決策は次のとおりです。

group_markers = [(clique, "gray") for clique in mcliques]
plot(g2, mark_groups=group_markers)

パラメータGraph.__plot__の詳細については、のドキュメントを参照してください。mark_groups基本的には、色を頂点のグループ(頂点ID)にマッピングする辞書か、頂点IDと色のペアを生成するリストのいずれかです。次に、頂点グループは、背景として指定された色の影付きの領域で囲まれます。

于 2012-08-21T19:30:47.990 に答える