繁体   English   中英

Networkx节点上的多个属性可用于图形上的多个标签

[英]Networkx multiple attributes on nodes for multiple labels on graph

我正在使用一种建议系统,该建议系统使用形式概念分析来查找网络中最接近的相似客户端。 为了创建正式的概念,我正在使用pandas,用于网络networkx以及绘制matplotlib,即Python 3中的所有内容。

我的问题是,我想在图形上表示具有每个节点的两种类型的属性:例如,客户端名称和电影。 举个简单的例子:节点1:“名称”-> [“鲍勃”,“约翰”]; “电影”-> [“ Jaws”]。 “名称”和“电影”被编码为节点的属性。 继续示例:

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"]

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

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

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

我正在寻找的图形类型的图像

非常感谢您的帮助!

那么在您的网络中,节点代表什么,边缘代表什么? 每个节点是否代表一个用户,并且两个用户之间的每个边沿都有相似的品味? 我认为您应该澄清一下,因为从您的问题来看,您似乎还没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM