graphviz segmentation fault(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 分段错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:graphviz 分段错误
基础教程推荐
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
