首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Networkx中绘制大型图表时出错

在Networkx中绘制大型图表时出错
EN

Stack Overflow用户
提问于 2018-05-30 23:17:29
回答 2查看 970关注 0票数 1

我正在尝试可视化一个总共有大约300,000个节点的二部图。我正在使用下面的helper函数。

代码语言:javascript
复制
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单元格中弹出以下错误,该过程永远挂在那里:

代码语言:javascript
复制
C:\Users\user\AppData\Roaming\Python\Python36\site-packages\networkx\drawing\layout.py:499: RuntimeWarning:

invalid value encountered in sqrt

我试着通过随机采样我的数据来可视化更小的图形,它有worked...until,样本超过9000个节点。

我不确定如何解释我得到的错误,但似乎图的大小是一个因素。那么,我可以在Networkx中可视化的图形的大小有限制吗?有什么办法可以让我绕过这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-30 23:28:31

似乎Networkx无法为所有节点分配足够的空间,请先尝试增加figsize或缩小node_size。如果这两种方法都不起作用,请尝试使用pip install networkx --upgrade升级networkx包,因为您似乎没有使用最新版本的networkx。

票数 0
EN

Stack Overflow用户

发布于 2018-07-26 17:32:35

除了Bubble Bubble的回答建议之外,尝试使用更简单的布局算法。最初我使用spring_layout遇到这个错误,但我发现循环工作。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50608260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档