将距离矩阵可视化为图形

Vizualize distance matrix into graph

对于以下距离矩阵:

∞, 1, 2
∞, ∞, 1
∞, ∞, ∞

我需要可视化下图:
That's how it should look like

我尝试使用以下代码:

import networkx as nx
import numpy as np
import string

dt = [('len', float)]
A = np.array([ (0, 1, None, 3, None),
               (2, 0, 4, 1, None),
               (5, None, 0, 3, None),
               (None, None, None, 0, None),
               (None, None, None, 2, 0),
               ])*10
A = A.view(dt)

G = nx.from_numpy_matrix(A)   

G = nx.drawing.nx_agraph.to_agraph(G)

G.node_attr.update(color="red", style="filled")
G.edge_attr.update(color="blue", width="2.0")

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

但是我好像不能输入无穷大(∞)来表示没有联系。我尝试了 None-1,甚至 ,但似乎没有任何效果,所以如果有人知道我如何可视化该距离矩阵,请告诉我。

这是否是您所追求的不是很明显,但一种选择是使用 np.inf 来表示无穷大。下面是一个片段,其中删除了值为 np.inf 的边,但这是否有意义取决于上下文:

import networkx as nx
import numpy as np

A = np.array(
    [
        (0, 1, np.inf),
        (2, 0, 4),
        (5, np.inf, 0),
    ],
    dtype="float",
)

# if edge is np.inf replace with zero
A[A == np.inf] = 0

G = nx.from_numpy_matrix(A, create_using=nx.DiGraph)
G = nx.drawing.nx_agraph.to_agraph(G)
G.node_attr.update(color="red", style="filled")
G.edge_attr.update(color="blue", width="0.3")
G.draw("out.png", format="png", prog="neato")