我有一个由顶点和边表示的图形的文本文件(邻接列表)。是否有工具来创建可以读取文本文件的图形可视化?
文本文件的格式为
0 1 2
1 3 6
2 3 7
3 4
4 5
5 6 7
6 8
7 8
这是一张无向图。 0 1 2表示0个邻居1,0邻居2,反之亦然,因为它是无向的。
由于
鲁珀特
答案 0 :(得分:3)
我的图形可视化工具是graphviz。 Graphviz使用dot格式。你可以写这样的图:
strict graph {
0 -- 1;
0 -- 2;
1 -- 3;
1 -- 6;
2 -- 3;
2 -- 7;
3 -- 4;
4 -- 5;
5 -- 6;
5 -- 7;
6 -- 8;
7 -- 8;
}
要生成图表的图像,请执行
dot -Tpng g.dot > g.png
制作此图片:
您可以将dot
配置为使用其他布局。
如果您的图表很大并且手动转换为点格式是不可行的,您可以使用以下python脚本(它使用networkx和pygraphviz)读取您的adj格式并以点格式生成文件:
import networkx as nx
import os
import sys
inf = sys.argv[1]
out = os.path.splitext(inf)[0] + '.dot'
g = nx.Graph()
for line in open(inf).readlines():
adj = list(map(int, line.split()))
u = adj[0]
for v in adj[1:]:
g.add_edge(u, v)
nx.write_dot(g, out)
执行此脚本执行
python script.py graph.txt
将生成名为graph.dot
的文件。