我有一个邻接矩阵存储为CSV文件。我想使用D3.js将邻接矩阵可视化为力导向无向加权图。矩阵的元素表示节点之间的距离,如下:
AA,A1,A2,A3
A1,0,0.5,1
A2,0.5,0,2
A3,1,2,0
是否有一种简单的方法来读取邻接矩阵并使用d3生成无向图形可视化,或者是否应将此数据转换为更直接的内容(即"源,目标,权重" CSV文件或一个JSON图规范)?
答案 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});
}
});
});