如何根据图形的边缘执行聚类?

时间:2014-07-18 18:03:40

标签: python csv graph cluster-computing

我有以下CSV格式,

x,y,6
y,z,9
y,p,5
x,p,3

这里,字母是节点,数字是边。我绘制了图表:

Gph = nx.read_edgelist(filepath, delimiter=',', data=[('weight', int)]) 
G.edges(data=True)

edge_labels = dict(((u, v), d['weight']) for u, v, d in Gph.edges(data=True))
pos = nx.random_layout(Gph)
#pos = nx.pydot_layout(Gph)
nx.draw(Gph, pos, with_labels=True) 
nx.draw_networkx_edges(Gph, pos, edge_color='b')

plt.show() 

如何根据边缘聚类节点?所以这些对成为集群的元素。 x,y是群集的元素。

1 个答案:

答案 0 :(得分:1)

您可以选择使用nx.random_layout(Gph)提供的spring_layout算法,而不是使用networkx。您需要安装numpy,但此强制定向算法将根据边缘权重对节点进行聚类。

以下是对该算法的调用的一个示例,但您可以根据需要调整参数。用这个替换随机布局线。

pos = nx.spring_layout(Gph,scale=20)