python - 如何根据图的边进行聚类?

标签 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 是簇中的一个元素。

最佳答案

不使用 nx.random_layout(Gph),您可以尝试使用 spring_layout networkx 提供的算法。您需要安装 numpy,但这种力导向算法将根据边权重对节点进行聚类。

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

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

关于python - 如何根据图的边进行聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24831184/

相关文章:

r - pairs() 如何给不同的标签赋予不同的字体样式?

python - numpy.random.choice 中的替换是什么意思?

Python:尝试将字符串转换为 int,对于以 10 为基数的 int(),出现 int 无效文字错误: ''

python - 对 Python 子子包感到困惑

PHP EXPORT MYSQL TO CSV - 获取列标题,无法获取其余数据?

python - 对大型 .csv 文件使用缓冲阅读器,Python

csv - SQL 2012 FileTable中存储的150MB CSV文件-如何查询要插入表中的数据

java - 如何在 android 中用 x 轴上的时间和另一个轴上的值绘制图表?

匹配所有内容的python列表

graph - NEO4J - 从一个节点找到所有传入和传出的边