【发布时间】:2014-04-20 15:38:57
【问题描述】:
我需要查看(绘制或绘制)网络中的社区结构
我有这个:
import igraph
from random import randint
def _plot(g, membership=None):
layout = g.layout("kk")
visual_style = {}
visual_style["edge_color"] = "gray"
visual_style["vertex_size"] = 30
visual_style["layout"] = layout
visual_style["bbox"] = (1024, 768)
visual_style["margin"] = 40
for vertex in g.vs():
vertex["label"] = vertex.index
if membership is not None:
colors = []
for i in range(0, max(membership)+1):
colors.append('%06X' % randint(0, 0xFFFFFF))
for vertex in g.vs():
vertex["color"] = str('#') + colors[membership[vertex.index]]
visual_style["vertex_color"] = g.vs["color"]
igraph.plot(g, **visual_style)
if __name__ == "__main__":
karate = igraph.Nexus.get("karate")
cl = karate.community_fastgreedy()
membership = cl.as_clustering().membership
_plot(karate, membership)
但是顶点是分散的。在另一个网络中,这个结果非常糟糕。
我希望顶点在相似区域中按颜色分组。
例如:
【问题讨论】:
标签: python social-networking cluster-analysis igraph