Мне нравится рисовать график, используя graph-tool
, где веса ребер записаны по краям.
Я могу нарисовать график, но веса ребер странным образом отмечены:
import graph_tool.all as gt
g = gt.Graph(directed=True)
import numpy as np
import random
dim = 7
sparsity = .27
# create adjacency matrix
M1 = np.matrix(random.choices([0,1], weights=[1-sparsity, sparsity], k=dim*dim)).reshape(dim,-1)
M = np.multiply(np.random.randint(1, 10, (dim, dim)), M1) # element-wise multiplication by M1
np.fill_diagonal(M, 0) # inplace
adjlist = np.transpose(M.nonzero())
g.add_edge_list(adjlist)
weights = M[M.nonzero()]
#add weights as an edge propertyMap
ew = g.new_edge_property("double")
ew.a = weights
g.ep['edge_weight'] = ew
gt.graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, edge_text=ew, edge_font_size=18, output_size=(400, 400),
output="/home/info/99_deleteme/mygraph.png")
Это сгенерированный график:
Где я могу найти список (или даже документацию) всех возможных vertex_*
и edge_*
свойства как предложено в https://graph-tool.skewed.de/static/doc/draw.html#graph_tool .draw.graph_draw ?
Поиск в Google дает мне только примеры, такие как https://graph-tool.skewed.de/static/doc/_modules/graph_tool/flow.html?