为什么networkx在每次运行时重画我的图都不同?

访问控制列表

我想画一个图,其边缘代表节点之间的相关系数。每个独特的关系我都有优势。每次我重新运行以下代码时,图形都不同。有没有一种方法可以强制图形的一种形式?另外,不确定这是否能正确生成图形-请帮助解决任何看起来错误的问题。

G = nx.Graph()
G.add_edge('A', 'B', weight=0.511012)
G.add_edge('A', 'C', weight=0.553063)
G.add_edge('A', 'D', weight=0.607859)
G.add_edge('A', 'E', weight=0.601554)
G.add_edge('A', 'F', weight=0.641796)

G.add_edge('B', 'C', weight=0.438743)
G.add_edge('B', 'D', weight=0.463087)
G.add_edge('B', 'E', weight=0.615150)
G.add_edge('B', 'F', weight=0.478853)

G.add_edge('C', 'D', weight=0.553063)
G.add_edge('C', 'E', weight=0.438743)
G.add_edge('C', 'F', weight=0.541893)

G.add_edge('D', 'E', weight=0.535331)
G.add_edge('D', 'F', weight=0.556995)

G.add_edge('E', 'F', weight=0.535446)

nx.draw(G, with_labels=True, node_color='orange', node_size=400, edge_color='black', linewidths=1, font_size=15)
plt.show()
乔尔

默认nx.draw用途nx.spring_layout设置节点的位置。除非将种子送入nx.spring_layout,否则它将从随机初始条件开始,然后基于将边缘视为弹簧,将节点视为质量的方式使用移动来重新定位节点。由于这种随机的初始条件,位置每次都会不同。

但是,通常我们可能想使用多个绘制命令来绘制节点或边线(例如,如果我们希望某些节点使用一种尺寸或样式,而另一些节点使用另一种尺寸或样式)。为此,nx.draw接受一个可选参数pos,该参数是一个字典,其字典为键,节点的值为2元组,给出其(x,y)坐标。Networkx具有使用不同规则分配位置的多个功能,并且如上所述,默认值使用随机初始条件,因此每次都会提供不同的输出。

对于您的情况,您想确保每次运行代码时都将网络分配给相同的位置。因此,您应该为设置位置的命令提供种子。

#code to generate graph G here.
my_pos = nx.spring_layout(G, seed = 100)
nx.draw(G, pos = my_pos, with_labels=True, node_color='orange', node_size=400, edge_color='black', linewidths=1, font_size=15)
plt.show()

可以允许边缘的重物使弹簧布局发挥作用,好像较高的重物是更坚固的弹簧一样。查看spring_layout文档以获取更多详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么同一程序的虚拟内存区域在每次运行时都不同?

为什么 Python 中的执行时间在每次运行时给出不同的结果?

为什么我的程序在运行时在命令窗口中什么都不输出?

为什么每次执行时函数的地址都不同?

如何让我的阵列在每次运行时选择不同的选择?

运行时间不同的代码几乎相同-为什么?

为什么 Android 视图值在运行时不同?

创建一个每次在C中运行时都不同的文本文件名

为什么我的代码出现运行时错误?

为什么我的代码给出运行时错误?

为什么我的脚本在从 udev 运行时失败?

为什么我在程序未运行时访问被拒绝?

为什么每次运行程序时argc的地址都不同?

为什么每次页面加载时我的脚本都不会运行?

为什么我的自定义流指标在相同输入上运行时总是给出不同的结果?

每次在NetBeans上运行时,用户界面上的对象都会更改外观。为什么?

为什么程序每次运行时都会抛出 SqlException: 'ItemID' 附近的语法不正确?

为什么 gdalinfo --version 在终端上运行时与通过 python 运行时显示不同的输出?

C:每次程序运行时不同的值

Python:程序每次运行时输出不同的值

无论我是否输出ggplot图,函数的结果都不同,为什么?

为什么每次“ openssl passwd”的输出都不同?

为什么在 Docker 构建期间所做的所有更改在运行时都不可用?

为什么要引入运行时?

我的VBA代码使Excel每次运行时都会崩溃

为什么我的用于计算TicTacToe中X和O胜利的变量在每次测试中都不同?(Java)

当我的应用程序在后台运行时,为什么我的BroadcastReceiver无法注册?

为什么我的getImageId函数仅在我的代码首次运行时触发?

为什么我的代码在运行时给我一个stackdump错误?