如何解决节点大小在运行之间变化,而数据在运行之间没有变化
edit2:所以我与另一组数据交叉检查,当我只有一组节点时,我没有遇到这种节点可变性,但由于某种原因,这种方法效率不高。我不明白为什么会发生这种情况,检查不同部分的源代码并没有产生任何关于错误的见解。
edit3:我忘记检查另一个数据集的一部分,我从未为它创建子组。现在我有了这些子组,我遇到了相同的节点大小变化。所以它与 networkx/matplotlib 如何重复绘制到轴上有关。还是没有进展。我要特别说明一下:节点可变性只有在绘制第一组节点后才会生效。
edit3.5:所以可能不是先绘制哪个,而是它们属于哪个组。我不知道发生了什么。
edit4:我明确地仔细检查了放入 draw_nodes
中的数据并检查出来。我正在阅读 here 有时值可能会在有序列表中放错位置并明确检查排序错误的元素。事实并非如此。我正在进入 draw_nodes
与之前的尝试基本相同的版本。事实上,在之前的一次尝试中,我使用了相同的列表理解技术,并且在创建列表时没有遇到任何问题。这里我使用 numpy 来制作相同的列表,但是我在数据中找不到问题。
edit5:我只想提一下,我添加了打印读数,以查看哪些数据被传递到 matplotlib 的某些内部,并且数据至少没有通过 matplotlib 包中的 collections.py 发生变异。 draw_nodes 快速连接到 collections.py 中的 PathCollection,但是一旦我将数据跟踪到类 Collection
,我就无法跟踪发生了什么。
我将一个 networkx 图形放在一起,出于某种未知原因,当我在上次运行后仅一分钟运行同一段代码时,不更改任何数据或代码,节点大小将发生巨大变化。
相关代码在这里,并且存在于一个简单的外观中,用于计算各种颜色编码组(plot_nodes 只是 nx.draw_networkx_nodes 的包装器):
indicies = where( equal( codes,i ) )
sub_nodes = color_coding[ indicies,0 ].astype( str ).flatten( )
new_pos = { key : pos[ key ] for key in sub_nodes }
G = graph.subgraph( sub_nodes )
plot_nodes( G,new_pos,node_list=sub_nodes,ax=plt,cmap=node_cmap[ i ],node_size=node_sizes[ indicies ] * node_scalar,node_color=node_colors[ indicies ],edgecolors='black',with_labels=False,alpha=.8,)
当我检查传递到绘图中的尺寸时,print(node_sizes[ indicies ]*node_scalar)
附加在绘图函数上方,我看到数据在运行中是一致的,并且赋予函数的值是相同的。更疯狂的部分是当我设置 node_size=300
时,我没有得到随机节点。
编辑:我发现我可以设置 vmin 和 vmax,但这并没有改变任何东西,随机节点仍然是一个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。