gpt4 book ai didi

Python NetworkX - 为什么图形总是随机旋转?

转载 作者:行者123 更新时间:2023-12-05 00:11:53 25 4
gpt4 key购买 nike

如果我使用 NetworkX 和 Matplotlib 多次生成相同的图形,它会在每一代中随机旋转:

运行 1:
Run 1

运行 2:
enter image description here

在不改变脚本或输入数据的情况下,图形在每次生成时随机旋转。是否可以指定方向?

随着图形变得更加密集(以上只是样本,但最终我将有数千个节点和边),如果由于图形图片旋转而移动新添加的节点或边,将很难看到它们。

import networkx as nx
import matplotlib.pyplot as plt
from networkx.readwrite import json_graph
#
# The graph data is loaded from JSON
#
graph = json_graph.node_link_graph(input_json)
pos = nx.spring_layout(graph)
nx.draw(graph, pos, with_labels=True, node_size=300)
edge_labels=dict([((u,v,),d['weight']) for u,v,d in graph.edges(data=True)])
nx.draw_networkx_edge_labels(graph, pos, edge_labels=edge_labels)
plt.savefig("test.png")

第二个不太重要的问题是为什么从 R1 到 R2 和 R1 到 R5 的边/线要长得多?更新:我没有在 JSON 数据源中设置“长度”属性。

最佳答案

我刚刚发现您可以修复随机生成图的初始状态:
只需播种生成器,它就会始终产生相同的随机位置集。

random_pos = nx.random_layout(graph, seed=42)
pos = nx.spring_layout(graph, pos=random_pos)

关于Python NetworkX - 为什么图形总是随机旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52444409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com