D3.js:来自邻接矩阵的力导向图

时间:2015-09-11 17:00:59

标签: d3.js

我有一个邻接矩阵存储为CSV文件。我想使用D3.js将邻接矩阵可视化为力导向无向加权图。矩阵的元素表示节点之间的距离,如下:

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

是否有一种简单的方法来读取邻接矩阵并使用d3生成无向图形可视化,或者是否应将此数据转换为更直接的内容(即"源,目标,权重" CSV文件或一个JSON图规范)?

1 个答案:

答案 0 :(得分: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});
    }
  });
});