d3.js sankey图 - 使用多角钱阵列作为节点

时间:2014-08-29 05:30:30

标签: javascript arrays d3.js multidimensional-array sankey-diagram

我一直在使用Google Chart的Sankey Diagram开发应用程序,我在网络应用程序上成功创建了一个Sankey Diagram示例。但是我对布局并不满意,而且我在网上搜索并获得了针对Sankey Diagram的d3.js插件。它看起来非常好,我从here测试了示例代码应用程序。

在代码中,它调用外部JSON文件将其用作节点:

d3.json("sankey-formatted.json", function(error, graph) { ... });

在我开发的第一个应用程序中,我从多维数组中获取节点,如下所示:

//rows is the multidimensional array
//i got this from the example on Google Charts
data.addRows(rows);  

多维数组是来自AJAX调用的对象集合。

如何将此数组用于Sankey Diagram?我可以不调用外部文件吗?

1 个答案:

答案 0 :(得分:1)

我设法回答了我自己的问题(愚蠢的我)。我将发布这个以供将来使用。

如果您已有一个包含数据的变量(即数组),请直接使用它。

就我而言,原始代码:

d3.json("sankey-formatted.json", function(error, graph) {

  //sankey is an object, as well as the graph
  sankey
      .nodes(graph.nodes)
      .links(graph.links)
      .layout(32);

 // ... other codes
});

将其更改为

// this time, nodes and links are the variables
// that holds the arrays to be used by the chart
// remove the encapsulation of d3.json
sankey
    .nodes(nodes)
    .links(links)
    .layout(32);

// ... other codes

希望这有助于未来的观点。