【问题标题】:Retrieving coordinates of plotted NetworkX graph nodes检索绘制的 NetworkX 图形节点的坐标
【发布时间】:2018-01-02 11:27:38
【问题描述】:

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

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')

【问题讨论】:

    标签: python networkx


    【解决方案1】:

    您的代码没有按照编写的方式运行。但我认为您只想要通过调用graphviz_layout (使用pygraphviz)可以获得的neato 布局位置。 结果是一个字典,其中节点作为键,位置作为值。

    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)}
    

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 2015-04-16
      • 1970-01-01
      相关资源
      最近更新 更多