我是NetworkX的新手。现在,我设法将所有节点连接到此特定节点。我接下来要做的是使它具有交互性,例如能够通过使用游标拖动来使每个节点移动。我知道我必须使用matplotlib,但我不知道如何使用它。任何人都可以帮助我吗?
我的代码是:
import matplotlib.pyplot as plt
import networkx as nx
import itertools
d = [name of nodes]
f = [number per nodes]
for i in d:
G.add_edge('"' + i + '"',b)
pos=nx.fruchterman_reingold_layout(G, k=0.5, iterations=5)
nx.draw_networkx_nodes(G,pos,node_size=130, node_color="white")
nx.draw_networkx_edges(G,pos, width=0.2,alpha=1,edge_color='black')
nx.draw_networkx_labels(G,pos,font_size=7,font_family='sans-serif')
for i,j in itertools.izip(d,f):
nx.draw_networkx_edge_labels(G,pos, {('"' + i + '"',b):j}, font_size=7, label_pos= 0.80)
plt.axis('off')
plt.show()
答案 0 :(得分:5)
使用matplotlib似乎很难(它实际上并不是为此设计的)。 Networkx绘图模块非常差,它主要使用节点的自定义散点图等。
我建议另一个解决方案:
您可以在my blog的网页上找到使用NetworkX创建的真实图表示例。在此示例中,节点是静态的,但单击节点会突出显示其邻居。
拟议的交互式图形绘制库的官方示例:
答案 1 :(得分:4)
Matplotlib的设计更多是针对静态图形和图表。
然而,一旦将NetworkX图形导出为GEXF格式,就会有一个工具可以让您根据位置或标准选择区域以便移动它。该工具名为Gephi。您可以使用布局来开始,也可以像数据科学家那样深入。