javascript - HeatMap - 使用 JSON 数据的 dc.js 和 d3.js

标签 javascript json angularjs d3.js dc.js

我可以使用 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 数据用于热图的示例。

最佳答案

如果您使用的是 JSON 文件,那么代码将大致相同,只是将 d3.csv 替换为 d3.json

如果数据已经加载到浏览器中,那么您可以删除此函数并运行:

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

其余代码将相同。

关于javascript - HeatMap - 使用 JSON 数据的 dc.js 和 d3.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27963811/

相关文章:

javascript - extjs 4 中的范围问题

javascript - Flow 无法理解对 null 或未定义的检查

javascript - 变量在 Ionic 中定义

javascript - Cytoscape 不恢复元素

json - 在 Golang 中根据对象值对 JSON 的解析进行排序

javascript - 无法根据 JSON API 变量更改 HTML 背景

angularjs - ionic 框架无限滚动刚刚调用了一次

javascript - 如何让异步/等待等待我的嵌套数组填充

javascript - 数组中的数组,AngularJS,ng-repeat

javascript - angularjs bootstrap ng-repeat 在选项卡内不起作用