После генерации случайного графа с помощью Graph-Tool он не показывает график и не может найти выходной файл. - PullRequest
0 голосов
/ 18 мая 2019

Я хотел бы генерировать и отображать случайные графики с помощью 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

...