我正在尝试可视化一个总共有大约300,000个节点的二部图。我正在使用下面的helper函数。
def plot_network(G):
pos = nx.spring_layout(G)
plt.figure(figsize=(10,10))
nx.draw_networkx(G, pos, iterations=20, node_grouping='bipartite',
with_labels=False, node_size = 5)
plot_network(G)当我尝试完整地可视化图形时,在IPython单元格中弹出以下错误,该过程永远挂在那里:
C:\Users\user\AppData\Roaming\Python\Python36\site-packages\networkx\drawing\layout.py:499: RuntimeWarning:
invalid value encountered in sqrt我试着通过随机采样我的数据来可视化更小的图形,它有worked...until,样本超过9000个节点。
我不确定如何解释我得到的错误,但似乎图的大小是一个因素。那么,我可以在Networkx中可视化的图形的大小有限制吗?有什么办法可以让我绕过这个问题吗?
发布于 2018-05-30 23:28:31
似乎Networkx无法为所有节点分配足够的空间,请先尝试增加figsize或缩小node_size。如果这两种方法都不起作用,请尝试使用pip install networkx --upgrade升级networkx包,因为您似乎没有使用最新版本的networkx。
发布于 2018-07-26 17:32:35
除了Bubble Bubble的回答建议之外,尝试使用更简单的布局算法。最初我使用spring_layout遇到这个错误,但我发现循环工作。
fig, axs = plt.subplots(1,1, figsize=(25,25))
# Define node positions using layout algo
# pos = nx.spring_layout(G, center=(1,1), k=40, iterations=5) # returns error
pos = nx.circular_layout(G)
# draw
nx.draw(G,axis=axs, pos=pos, node_size=1)https://stackoverflow.com/questions/50608260
复制相似问题