ошибка сегментации графвиз - PullRequest
5 голосов
/ 13 апреля 2010

Я строю график с множеством узлов, около 3000. Я написал простую программу на Python, чтобы выполнить трюк с Graphviz, но это вызывает ошибку сегментации, и я не знаю почему, если график слишком большой если я что-то упустил.

Код:

#!/usr/bin/env python

# Import graphviz
import sys
sys.path.append('..')
sys.path.append('/usr/lib/graphviz')
import gv

# Import pygraph
from pygraph.classes.graph import graph
from pygraph.classes.digraph import digraph
from pygraph.algorithms.searching import breadth_first_search
from pygraph.readwrite.dot import write

# Graph creation
gr = graph()

file = open('nodes.dat', 'r')
line = file.readline()
while line:
        gr.add_nodes([line[0:-1]])
        line = file.readline()

file.close()
print 'nodes finished, beginning edges'

edges = open('edges_ok.dat', 'r')
edge = edges.readline()
while edge:
        gr.add_edge((edge.split()[0], edge.split()[1]))
        edge = edges.readline()

edges.close()
print 'edges finished'
print 'Drawing'

# Draw as PNG
dot = write(gr)
gvv = gv.readstring(dot)
gv.layout(gvv,'dot')
gv.render(gvv,'svg','graph.svg')

и происходит сбой при вызове gv.layout().

Файлы выглядят примерно так: узлы:

   node1
   node2
   node3

edges_ok:

   node1 node2
   node2 node3

1 Ответ

6 голосов
/ 15 апреля 2010

Я изменил тип макета с точки на neato, и это решило проблему.

Я немного искал, и кажется, что расположение точек на больших графиках немного некорректно.

...