检索绘制的NetworkX图形节点的坐标

2024-04-26 09:52:42 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我正在绘制一个二维邻接矩阵,如下图所示。由于networkx能够绘制节点,因此必须有节点坐标的信息,我想知道是否有任何方法可以在绘制的图形中检索每个节点的二维坐标。我在google和查看文档方面没有任何运气。在

import networkx as nx
from networkx.drawing.nx_agraph import to_agraph

dt = [('len', float)]
A = np.array([(0, 5, 5, 5),
           (0.3, 0, 0.9, 0.2),
           (0.4, 0.9, 0, 0.1),
           (1, 2, 3, 0)
           ])*10

A = A.view(dt)
G = nx.from_numpy_matrix(A)

G.draw('distances_1.png', format='png', prog='neato')

enter image description here


Tags: 方法代码from文档importnetworkx信息图形
1条回答
网友
1楼 · 发布于 2024-04-26 09:52:42

你的代码没有按写的那样运行。但我认为您只需要neato布局位置,可以通过调用graphviz_layout(使用pygraphviz)来获得。 结果是一个字典,节点作为键,位置作为值。在

In [1]: import networkx as nx

In [2]: import numpy as np

In [3]: from networkx.drawing.nx_agraph import graphviz_layout

In [4]: A = np.array([(0, 5, 5, 5),
   ...:            (0.3, 0, 0.9, 0.2),
   ...:            (0.4, 0.9, 0, 0.1),
   ...:            (1, 2, 3, 0)
   ...:            ])*10

In [5]: G = nx.from_numpy_matrix(A)

In [6]: pos = graphviz_layout(G, prog='neato')

In [7]: pos
Out[7]: 
{0: (-42.946, -6.3677),
 1: (42.991, 6.3533),
 2: (6.3457, -42.999),
 3: (-6.3906, 43.014)}

相关问题 更多 >