Я хотел бы генерировать и отображать случайные графики с помощью graphtool, но часть отображения не работает, и я не могу понять, почему.
Я настроил Phyton и Docker, с помощью этих двух я также скачал и установил Graph-Tool, Pipy, Numpy, Cairo и Matplotlib.
Я могу генерировать случайный граф, но когда я хочу «нарисовать» его с помощью функции graph_draw, я получаю только возвращаемое значение, но больше ничего не происходит. Файл не генерируется, и при использовании отображения cmd по умолчанию (без предоставления выходного значения функции) ничего не происходит. Я не получаю сообщений об ошибках.
Это то, что я запускаю в моем cmd:
Docker run --interactive --tty tiagopeixoto / graph-tool ipython
import graph_tool.all as gt
import numpy as np
import cairo
import matplotlib
def sample_k(max):
accept = False
while not accept:
k = np.random.randint(1,max+1)
accept = np.random.random() < 1.0/k
return k
g = gt.random_graph(1000, lambda: sample_k(40), model="probabilistic-configuration", edge_probs=lambda i, k: 1.0 / (1 + abs(i - k)), directed=False, n_iter=100)
pos = gt.sfdp_layout(g)
gt.graph_draw(g, pos, output_size=(1000, 1000), vertex_color=[1,1,1,0], vertex_fill_color=[1,1,0,0], vertex_size=1, edge_pen_width=1.2, vcmap=matplotlib.cm.gist_heat_r, output="test.png")
Вероятно, нет необходимости импортировать Каир здесь, но я много чего перепробовал и оставил там.
Я попытался дать ему более точное местоположение вывода, например
output = "C: \ Users \ user \ Desktop \ test.png", но это не имеет значения.
График генерируется нормально:
Объект графика, ненаправленный, с 1000 вершинами и 4728 ребрами в 0x7f4e1d46ca90