如何在Python中绘制k邻域的加权图

时间:2018-07-19 08:43:04

标签: python python-3.x matplotlib scikit-learn

我使用scikit-learn创建了k个邻域的加权图,我想知道是否有任何方法可以将其绘制为图。

这是我想绘制的数组形式的计算结果:

array([[0.        , 2.08243189, 0.        , 3.42661108],
       [2.08243189, 0.        , 3.27141008, 0.        ],
       [0.        , 3.27141008, 0.        , 1.57294787],
       [0.        , 3.29779083, 1.57294787, 0.        ]])

我只需要对数据进行可视化,这就是我所需要的。


有关阵列的更多详细信息:

每一行代表一个节点,每一列代表该节点与其他节点的连接权重。

例如:第一行的第二列(2.08243189)是从第一个节点到第二个节点的连接权重。
另一个示例:第二行,第二列(0):从节点2到其自身的连接权重。

数字代表欧几里德距离。

1 个答案:

答案 0 :(得分:0)

您是否在说像这样的简单事情,其中​​点的大小可以直观地表明相对权重与其他值的差异?假设数组命名为ar:

for i in range(len(ar)):
    for j in range(len(ar)):
        v = ar[i,j]        
        plt.scatter(i+1,j+1,lw=0,s=10**v)
        plt.grid(True)
        plt.xlabel('Row')
        plt.ylabel('Column')
        ticks = list(range(1,1+len(ar)))
        plt.xticks(ticks)
        plt.yticks(ticks)

enter image description here