热力图 - 使用JSON数据的dc.js和d3.js

3
我可以使用d3.js、dc.js和crossfilter创建热力图,使用CSV文件中的数据。
代码:
var chart = dc.heatMap("#test");
d3.csv("morley.csv", function(error, experiments) {
  var ndx    = crossfilter(experiments),
      runDim = ndx.dimension(function(d) { return [+d.Run, +d.Expt]; }),
      runGroup = runDim.group().reduceSum(function(d) { return +d.Speed; });
  chart
    .width(45 * 20 + 80)
    .height(45 * 5 + 40)
    .dimension(runDim)
    .group(runGroup)
    .keyAccessor(function(d) { return +d.key[0]; })
    .valueAccessor(function(d) { return +d.key[1]; })
    .colorAccessor(function(d) { return +d.value; })
    .title(function(d) {
        return "Run:   " + d.key[0] + "\n" +
               "Expt:  " + d.key[1] + "\n" +
               "Speed: " + (299000 + d.value) + " km/s";})
    .colors(["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"])
    .calculateColorDomain();
  chart.render();
});

但我想使用JSON数据来完成同样的事情,可能是一个带有一些JSON数据的数组。这似乎是一个初学者的问题,但我无法找到任何使用JSON数据的热力图示例。

1个回答

4

如果您使用的是JSON文件,则代码大部分都将相同,只需用d3.json替换d3.csv即可。

如果数据已经在浏览器中加载,则可以删除此函数并直接运行:

var experiments = JSON.parse(json_object) //if json_object is still a string
var ndx = crossfilter(experiments)

其余的代码将保持不变。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接