次の距離行列があります。
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 の間の距離が変更されています。
理由がわかりません。