Networkx上的多个属性,用于图表上的多个标签

时间:2016-02-28 09:04:27

标签: python matplotlib nodes networkx

我正在使用formal concept analysis推荐系统来查找网络中最近的类似客户端。创建正式的概念我正在使用pandas,用于网络networkx和绘制matplotlib,即Python 3中的所有内容。

我的问题是我想在图表上表示每个节点有两种类型的属性:例如客户端和电影的名称。举一个简单的例子:节点1:"名称" - > [" Bob"," John"]; "电影" - > ["下颌&#34]。 "名称"和#34;电影"被编码为节点的属性。继续这个例子:

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

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

因此,在您的网络中,节点表示什么以及边缘代表什么?每个节点是否代表用户和每个边缘在两个用户之间的相似品味?我想你应该澄清一下,因为你的问题似乎没有。