我有以下距离矩阵:
delta =
[[ 0. 0.71370845 0.80903791 0.82955157 0.56964983 0. 0. ]
[ 0.71370845 0. 0.99583115 1. 0.79563006 0.71370845
0.71370845]
[ 0.80903791 0.99583115 0. 0.90029133 0.81180111 0.80903791
0.80903791]
[ 0.82955157 1. 0.90029133 0. 0.97468433 0.82955157
0.82955157]
[ 0.56964983 0.79563006 0.81180111 0.97468433 0. 0.56964983
0.56964983]
[ 0. 0.71370845 0.80903791 0.82955157 0.56964983 0. 0. ]
[ 0. 0.71370845 0.80903791 0.82955157 0.56964983 0. 0. ]]
我正在尝试使用 networkx 库将其表示为图形。这是我的代码:
import networkx as nx
G = nx.from_numpy_matrix(delta)
pos = nx.random_layout(G)
plt.figure(figsize=(7, 7))
for k, p in pos.iteritems():
plt.scatter(p[0], p[1], marker='o', c=colors[k], s=50, edgecolor='None')
lgd = plt.legend(markers, labels, numpoints=1, bbox_to_anchor=(1.17, 0.5))
plt.tight_layout()
plt.axis('equal')
pt.show()
然而,我所看到的并不是我所期望的。例如,考虑这个输出:
从 开始delta
,节点 1 与节点 6 和 7 位于同一点,并且远离节点 4。我在输出图中看不到 。此外,我超时运行它,它会导致另一个输出。这是意料之中的,但距离似乎没有得到尊重。例如,在下图中,1 到 6,7 和 4 之间的距离发生了变化。
我不明白为什么。