我有一个用 Networkx
从 Dotfile
读取的图表,为了可视化它,我需要影响每个节点的位置 (x,y)。我怎样才能做到这一点?
为了可视化,我在 python3.6 上使用 Plotly
离线模式,为此我需要边缘和节点的位置。
现在,我尝试给出随机值,但这似乎根本不起作用
基本上,我用于绘图的代码是这样的:https://plot.ly/python/network-graphs/ 该算法使用随机创建的 Graph 中的“pos”,但对我来说,我没有这些坐标,而且我不知道如何生成它们。
最佳答案
您要解决的问题称为 graph layouts 。 networkx中有一些图形布局算法:networkx.drawing.layout 。这是示例:
import networkx as nx
G = nx.Graph()
G.add_nodes_from([1,2,3,4,5])
G.add_edges_from([(1,2),(2,3),(2,4),(4,5)])
nx.spring_layout(G)
返回所有节点的坐标:
{1: array([-0.73835686, 0.38769421]),
2: array([-0.11386106, 0.22912486]),
3: array([0.14264776, 0.81717097]),
4: array([ 0.21475452, -0.43399004]),
5: array([ 0.49481564, -1. ])}
关于python-3.x - 如何影响图形节点的位置以进行可视化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55330230/