首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于节点和边数组的社交网络可视化

基于节点和边数组的社交网络可视化
EN

Stack Overflow用户
提问于 2019-01-09 10:45:38
回答 1查看 857关注 0票数 0

我想使用一些工具(最好是python中的一些工具)来可视化社交网络。目前,我的数据采用数组的形式:一个包含有关节点的信息的数组(让我们将其命名为Nodes)。该数组的每一行都指向一个节点,而该数组的每一列都指向一个特定的属性。Nodes的每一列中的值描述属性值。此Nodes数组中的零值表示缺少的属性值。

除了节点数组,我还有一个用于邻接矩阵(边)的数组。让我们将此数组命名为EdgesEdges数组是与Nodes数组中的行数(节点)大小相同的正方形数组。这个数组(Edges)用01作为值进行填充。如果Edges(i,j)位置中的值为0,则表示节点ij彼此不连接。然而,(m,n)位置的1值将意味着节点mn彼此连接。

以下是具有10个节点的阵列NodesEdges的一个小型说明性示例:

代码语言:javascript
复制
Nodes = np.array([[1,2,4],[1,3,1],[2,2,1],[1,1,2],
              [1,2,2],[2,1,4],[1,2,1],[2,0,1],
              [2,2,4],[1,0,4]])

Edges = np.random.randint(2, size=(10,10))

在上面给出的数据中,我们有10个节点和3个属性。如何使用这些阵列(NodesEdges)获得网络的可视化效果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-09 11:07:25

你应该调查一下networkx。要直接从邻接矩阵创建图形,可以使用函数from_numpy_array

代码语言:javascript
复制
import networkx as nx

adj = np.random.randint(2, size=(10,10))
G = nx.from_numpy_array(adj)

您可以分配节点属性,但每个属性都需要有一个名称,您在示例中没有提供名称。不过,set_node_attributes让它们的赋值变得很漂亮。

可视化它也是一种选择:

代码语言:javascript
复制
nx.draw(G, with_labels=True, font_weight='bold')

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54102594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档