【问题标题】:create graph from text file of vertices and edges从顶点和边的文本文件创建图形
【发布时间】:2016-05-13 13:32:18
【问题描述】:

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

文本文件的格式是

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

谢谢

鲁珀特

【问题讨论】:

    标签: graph


    【解决方案1】:

    我很好的图形可视化工具是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 脚本(它使用带有 pygraphviz 的networkx)读取您的 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 的文件。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2017-01-23
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 2018-02-28
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多