Graph 从顶点和边的文本文件创建图形

Graph 从顶点和边的文本文件创建图形,graph,Graph,我有一个由顶点和边表示的图形的文本文件(邻接列表)。是否有一个工具可以创建一个可以读取文本文件的图形可视化 文本文件的格式为 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,反之亦然,因为它是无向的 谢谢 Rupert是一个很好的图形可视化工具。Graphviz使用该格式。您可以这样编写图形: strict graph { 0 -- 1; 0 -- 2; 1 -- 3; 1

我有一个由顶点和边表示的图形的文本文件(邻接列表)。是否有一个工具可以创建一个可以读取文本文件的图形可视化

文本文件的格式为

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,反之亦然,因为它是无向的

谢谢


Rupert是一个很好的图形可视化工具。Graphviz使用该格式。您可以这样编写图形:

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脚本(与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
的文件