2

私はPythonでigraphの例を調べていますが、この問題に遭遇し続けています。

熱心にトリミングされたカウツ

最も外側の頂点は、部分的にバウンディング ボックスの外側にあります。このでは、この問題はほとんどありません。

(また、私の場合、双方向接続のために追加の線を描いているようですが、例では、両側に矢印を付けているだけです。これが簡単な修正である場合は、私に知らせてください。)

サンプルページからコピーした私のコードを以下に示します。

g = Graph.Kautz(m=3, n=2)
adj = g.get_adjacency()
fig.add(g, layout="fr", vertex_label=None)
fig.add(adj, bbox=(360, 0, 480, 120), grid_width=0, opacity=0.7)
fig.show()

私のインストールの詳細はこちらです。

No configuration file, using defaults
igraph 0.6 running inside Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2

どんな助けにもとても感謝しています!

4

2 に答える 2

6

曲線エッジは、その図がドキュメントで作成された時点よりも後で igraph のグラフ ドロワーに導入されたため、ドキュメントの図で曲線エッジが表示されていないのはそのためです。とにかく、湾曲したエッジは簡単に無効にすることができます:

graph.es["curved"] = False

また

plot(graph, edge_curved=False)

境界ボックスに収まらないエッジについて:plot()関数 (クイック プロット用のワンショット関数) にはmargin、グラフ プロットの周りに白いマージンを置くキーワード引数があります。これは基本的に、(ほとんどの場合) エッジが内側に留まるように、Figure のバウンディング ボックスを所定のピクセル数だけ縮小することによって行われます。クラスを直接操作して独自のプロットを作成する場合plotは、自分でマージンを追加する必要があります。

bbox = BoundingBox(600, 600)
figure = Plot(bbox=bbox)
bbox = bbox.contract(20)
figure.add(graph, bbox=bbox, layout=layout)
figure.show()

plot組み込み関数とPlotクラスのもう 1 つの違いは、plot関数はデフォルトで白い背景を追加するのに対しPlot、透明な背景を使用することです。コンストラクターのbackgroundキーワード引数を使用して、これをオーバーライドできます。Plot

于 2013-01-25T21:54:29.787 に答える
3

長い一日のドキュメント検索の後、解決策発見しました。私が今使っているのは、

graph.layout().fit_into(bbox=(<size>, <size>))

そして、igraph.Plot() と plot.add(graph) を使用する代わりに、

igraph.plot(graph, bbox=(<size>, <size>))

さらに、カーブしたエッジに関する問題を解決しました。

graph.es["curved"] = 0

これを見てくれた皆さん、ありがとう。私の経験がお役に立てば幸いです。

于 2013-01-25T03:51:49.050 に答える