如何绘制网络图的补充?

时间:2010-01-14 17:49:57

标签: python graph plot graphviz complement

Graphviz中的任何功能都能做到吗? 如果没有,任何其他可以做到这一点的免费软件?

2 个答案:

答案 0 :(得分:5)

鉴于你想在graphviz中渲染图形,我建议使用python库networkx来计算图形补码。 Networkx是一个优秀的图论分析库;它还与graphviz有无缝接口。

(图形补充的粗略定义:想象一个图形A',其具有与A相同的节点但具有所有可能的边缘,即,每个节点都连接到每个其他节点;现在从A'移除边缘A;剩下的是A,A')的补充

import networkx as NX
G = NX.gnm_random_graph(10, 10)   # create a random graph w/ 10 nodes, 10 edges
G_cmpl = NX.complement(G)         # get the complement of graph 'G'

# to render it in graphviz:
NX.write_dot(G_cmpl, "somefilename.dot")

答案 1 :(得分:0)

自己计算补数,然后绘制。