图的可视化

最近在看一些算法,需要将抽象的图的数据结构用可视化的方式展现,本来以为matplotlib可能会有潜在的支持,结果发现了一个关于图的计算和展示的模块networkx。这个模块使用非常方便,支持基于dict的邻接表,用来辅助图论的学习很不错。

# -*- encoding: utf-8 -*-

from matplotlib import pyplot as plt
import networkx as nx

N = {
    'a': set('bcdef'),
    'b': set('ce'),
    'c': set('d'),
    'd': set('e'),
    'e': set('f'),
    'f': set('cgh'),
    'g': set('fh'),
    'h': set('fg'),
}

G = nx.DiGraph(N)
nx.draw(G, with_labels=True,
        node_color='r',
        edge_color='b',
        font_color='g',
        font_size=16)

plt.axis('off')
plt.savefig("labels_and_colors.png")  # save as png
plt.show()  # display
labels_and_colors

posted on 2015-02-28 15:17  openqt  阅读(498)  评论(0编辑  收藏  举报

导航