2015-09-11 68 views
1

我有一个存储为CSV文件的邻接矩阵。我想使用D3.js将邻接矩阵可视化为一个力指向的无向加权图。矩阵的元素代表节点之间的距离,因为这样的:D3.js:来自邻接矩阵的强制导向图形

AA,A1,A2,A3 A1,0,0.5,1 A2,0.5,0,2 A3,1,2,0

是否有读出的邻接矩阵,并产生与D3的无向图的可视化的简单方法,还是应该将该数据变换到一些更简单的(即“源,目标,重量”CSV文件或JSON图形规范)?

回答

1

假设数据存储在像您发布一个矩阵,你会得到的节点是这样的:

var nodes = matrix[0].slice(1); 

然后你就可以构建这样的链接:

var links = []; 
nodes.forEach(function(d, i) { 
    matrix[i+1].slice(1).forEach(function(e, j) { 
    if(matrix[i+1][j+1] > 0) { 
     links.push({source: i, target: j}); 
    } 
    }); 
});