graphviz 分段错误

graphviz segmentation fault(graphviz 分段错误)
本文介绍了graphviz 分段错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在构建一个包含许多节点的图形,大约 3000 个.我编写了一个简单的 python 程序来使用 graphviz 来解决这个问题,但是它给了我分段错误,我不知道为什么,如果图形太大或如果我错过了什么.

I'm building a graph with many nodes, around 3000. I wrote a simple python program to do the trick with graphviz, but it gives me segmentation fault and I don't know why, if the graph is too big or if i'm missing something.

代码是:

#!/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() 调用时崩溃.

这些文件类似于:节点:

The files are somthing like: nodes:

   node1
   node2
   node3

edges_ok:

   node1 node2
   node2 node3

推荐答案

我把布局类型从dot改成neato,问题就解决了.

I changed the layout type from dot to neato and that solved the problem.

我搜索了一下,似乎点布局在大图上有点错误.

I searched a bit and it seems that the dot layout is a bit faulty on large graphs.

这篇关于graphviz 分段错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)