2010-04-13 80 views
3

我正在構建一個包含許多節點的圖形,大約爲3000.我寫了一個簡單的python程序來處理graphviz的技巧,但它給了我分段錯誤,並且我不知道爲什麼,如果圖形是太大或者我失去了一些東西。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 
+0

聽起來像你應該向Graphviz維護者報告? – 2010-04-13 11:09:56

+0

如果不是程序員相關的問題,我肯定會這樣做。 – lbedogni 2010-04-13 11:12:36

+0

您是否嘗試過構建點文件並使用(命令行)dotty處理它?這是否也segphault? – extraneon 2010-04-13 11:13:18

回答

4

我改變從網點佈局類型NEATO和解決的問題。

我搜索了一下,似乎點佈局在大圖上有點錯誤。