python - Networkx节点上的多个属性用于图上的多个标签

标签 python matplotlib nodes networkx

我正在开发一个使用 formal concept analysis 的推荐系统在网络中找到最近的相似客户端。为了创建正式概念,我使用 pandas,用于网络 networkx 和绘图 matplotlib,即 Python 3 中的所有内容。

我的问题是我想在图表上表示具有每个节点的两种类型的属性:例如客户名称和电影。举一个简单的例子: node 1 : "names"-> ["Bob","John"] ; “电影”-> [“大白鲨”]。 “名称”和“电影”被编码为节点的属性。继续这个例子:

G=nx.Graph()
G.add_nodes_from([1,2])
G.add_edge(1,2)    
G.node[1]['names']=["Bob","John"]
G.node[1]['movies']=["Jaws"]

不幸的是,经过长时间搜索如何在图的每个节点上放置 2 种类型的标签,我没有找到答案。这是我认为我应该使用的,但我不知道如何与 matplotlib 或 networkx 交互来进行双重标记:

node_labels = nx.get_node_attributes(G,"names")
node_labels2 = nx.get_node_attributes(G,"movies")
nx.draw_networkx_labels(G,labels = ?)

问题的另一个重要方面是将“电影”放在节点顶部,将“名称”放在节点下,如下图所示。

An image of the type of graph I am looking for

非常感谢您的帮助!

最佳答案

那么在你的网络中节点代表什么,边代表什么?每个节点是否代表一个用户以及两个用户之间的每条边是否相似?我认为你应该澄清这一点,因为从你的问题来看你似乎没有。

关于python - Networkx节点上的多个属性用于图上的多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35680593/

相关文章:

node.js - 具有 Mysql2 时区问题的 Node

java - python (jython) 归档库

python - Networkx 统计推断

python - 在 Python 中查找第 K 个最大元素的总体复杂性

python - pandas_ml 更改混淆矩阵图像大小

python - Matplotlib:季度小刻度标签

python - 如何制作具有多个根树的圆形树

python - pandas 加入 DataFrame 强制后缀?

python - 如何将分组条形图从垂直转换为水平

c - 将新用户添加到 c 程序中的列表