グラフツールのエッジにアクセスしようとしています。例:次のグラフを仮定します。グラフツールのエッジにアクセスするには?グラフツールのエッジにidsがないのはなぜですか?
from graph_tool.all import *
g = Graph()
eprop = g.new_edge_property("int")
g.edge_properties["distance"] = eprop
v0 = g.add_vertex()
v1 = g.add_vertex()
v2 = g.add_vertex()
v3 = g.add_vertex()
v4 = g.add_vertex()
e0 = g.add_edge(v0, v1)
g.ep.distance[e0] = 1
e1 = g.add_edge(v1, v2)
g.ep.distance[e1] = 1
e2 = g.add_edge(v2, v3)
g.ep.distance[e2] = 1
e3 = g.add_edge(v3, v4)
g.ep.distance[e3] = 1
e4 = g.add_edge(v0, v4)
g.ep.distance[e4] = 1
e5 = g.add_edge(v0, v4)
g.ep.distance[e5] = 2
graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="Test.png")
長の頂点4に頂点0から行く2辺、長さ1と1と1 2.
がありますが私の質問は知って、特定のエッジを選択する方法を、今ありますエッジインデックス。 悲しいことに、グラフツールのドキュメントでは次のように書かれています。 "...エッジは直接インデックスから取得することはできませんが、与えられたエッジのソースとターゲットの頂点がわかっている場合、edge()メソッドで取得できます。 "
グラフを保存して読み込んだ後、変数v0、v1、...とe0、e1、...はもう使用できなくなります。
がe = g.edge(0,4)
print(g.edge_index[e])
# > Returns 4
ただ、他の1にアクセスするためにどのように頂点4に頂点0からエッジのいずれかを返します。ドキュメントは述べているようなグラフ内のエッジにアクセスしようとすると?エッジインデックスを知ることは4と5です。
おかげさまで、よろしくお願いいたします!
「g」はグラフであり、マルチグラフではありません。平行なエッジを持つことができるのはマルチグラフだけです。 – DyZ
私のグラフはマルチグラフです。 https://graph-tool.skewed.de/static/doc/graph_tool.html#graph_tool.Graph これは問題ではありません。問題はエッジにアクセスする方法です! – JustSomeone