Lesen Sie eine Datei im Linklistenformat (Quelle, Ziel, Gewicht), wie unten gezeigt, mit graph-tool.
link_list.csv
Alice,Bob,2
Bob,Charlie,5
Charlie,Alice,3
Um diese Datei mit dem grpah-Tool zu lesen, analysieren Sie sie wie folgt mit dem CSV-Modul.
load_csv_link_list.py
import csv
import graph_tool.all as gt
nodes = set()
rows = []
with open('link_list.csv') as f:
reader = csv.reader(f)
rows = [row for row in reader]
for row in rows:
nodes.add(row[0])
nodes.add(row[1])
nodes = list(nodes)
g = gt.Graph()
g.vp['name'] = g.new_vp('string')
for n in nodes:
v = g.add_vertex()
g.vp['name'][v] = n
# set edges
g.ep['weight'] = g.new_ep('double')
for row in rows:
s = nodes.index(row[0])
t = nodes.index(row[1])
w = float(row[2])
vs = g.vertex(s) # => get vertex object from the index
vt = g.vertex(t)
e = g.add_edge(vs, vt)
g.ep['weight'][e] = w
Was wir tun, ist wie folgt
name
im Diagramm und speichert g.vp ['name'] = g.new_vp ('string')
--g.vp
enthält das Attribut (vertex_property) für den Knotenweight
erstellt wirdSo sieht das Diagramm aus.
Das Ergebnis der Visualisierung dieses Diagramms ist übrigens wie folgt.
pos = gt.arf_layout(g)
gt.graph_draw(g, pos=pos, vertex_text=g.vp.name, vertex_font_size=10)