将json代码集成到d3 html文件中

时间:2017-01-07 23:56:28

标签: javascript json d3.js sankey-diagram

我正在通过以下链接测试sandey图表:https://gist.github.com/d3noob/c2637e28b79fb3bfea13

但我只能在Firefox中查看图表,而不能在Chrome中看到。我怀疑是因为Chrome不允许从外部文件访问数据。

因此,我正在尝试集成json代码,但是当我尝试它时,图表不会显示在Firefox中

我添加了一个包含所有json代码的变量:

var dataset = {"nodes":[{"node":0,"name":"node0"},{"node":1,"name":"node1"},{"node":2,"name":"node2"},{"node":3,"name":"node3"},{"node":4,"name":"node4"}],"links":[{"source":0,"target":2,"value":2},{"source":1,"target":2,"value":2},{"source":1,"target":3,"value":2},{"source":0,"target":4,"value":2},{"source":2,"target":3,"value":2},{"source":2,"target":4,"value":2},{"source":3,"target":4,"value":4}]};

我已经替换了这行代码:

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

对于这个(只是用数据集变量替换文件的名称):

d3.json(dataset, function(error, graph) {

,,,但不是图表没有显示。有没有为什么sankey图表没有显示的想法?

由于

1 个答案:

答案 0 :(得分:1)

您遇到的问题是d3.json ...

  

...返回一个新请求,使用默认的mime类型application / json在指定的url上获取JSON文件。

话虽这么说,解决方案比你想象的要简单:因为你已经有一个包含所有数据的变量,只需将其命名为graph(你的d3.json函数加载文件并填充数据名为graph)的数组:

var graph = {"nodes":[{"node":0,"name":"node0"},...

放弃d3.json功能,不要忘记删除右括号括号/括号:

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

    //your function

});//...and don't fortget to remove this too.