对图表进行直观表示

时间:2011-02-25 15:44:24

标签: linux graph

我有一个边缘列表。

(1,2),(1,3),(1,4),(1,5),(1,6),(2,4),(2,7),(3,4),(3,7),(4,5),(4,7),(5,6),(6,7)

如何获得此图表的图像?

它应该是自动的,因为这些列表超过9000(不是开玩笑)。

2 个答案:

答案 0 :(得分:5)

我总是使用graphviz作为这类东西。

答案 1 :(得分:2)

您可以使用Python和networkx绘制它。

import networkx
import pylab
edges = [(1,2),(1,3),(1,4),(1,5),(1,6),(2,4),(2,7),(3,4),(3,7),(4,5),(4,7),(5,6),(6,7)]
G = networkx.Graph(data=edges)
networkx.draw(G)
pylab.show()

您应该阅读pylab有关如何在不使用GUI的情况下将图形另存为图像的文档。您可以使用ast.literal_eval来解析原始列表。例如,如果它作为一个图形存储在文件中的一行上,则可以执行以下操作:

with open('edges.txt') as f:
    for line in f:
        edges = list(ast.literal_eval(line))
        # drawing goes here