2016-05-13 3 views
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 и наоборот, так как он неориентирован.

Благодаря

Руперт

ответ

2

Я хороший инструмент график визуализации 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 

Производит это изображение:

enter image description here

Вы можете настроить dot использовать другой макет.

Если ваш график огромен и преобразование вручную расставить формат является недопустимым, вы можете использовать следующий питон скрипт (он использует 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) 

для EXEC это сума выполнить

python script.py graph.txt 

файл с именем graph.dot будет.

Смежные вопросы