javascript - 试图在印度 map 上应用等值线

标签 javascript d3.js

我正在尝试在印度 map 图表上应用等值线。但无法实现结果 - My demo

      var colorScale = d3.scale.quantile()
          .domain([0, buckets - 1, d3.max(json, function (d) { return json.total; })])
          .range(colors);

我能感觉到上面和下面的代码是原因,但我无法解决。

            india.transition().duration(1000)
          .style("fill", function(d) { return colorScale(json.total); });

颜色引用取自 bl.ocks.org/tjdecke/5558084

最佳答案

除了 other answer 中解释的问题,你的色标是错误的。现在它返回这个数组作为域:

[0, 8, 9765]

这可能不是您想要的。

这里是一个不同的尺度,从 0 到最大值 total 等间隔划分域:

var maxTotal = d3.max(json.features, function(d) {
    return d.total
});

var colorScale = d3.scale.quantile()
    .domain(d3.range(buckets).map(function(d) {
        return (d / buckets) * maxTotal
    }))
    .range(colors);

现在,这是域:

[0, 1085, 2170, 3255, 4340, 5425, 6510, 7595, 8680]

这是更新的插件:http://plnkr.co/edit/CWn1vKbzDLq1YDAu9oD7?p=preview

关于javascript - 试图在印度 map 上应用等值线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474268/

相关文章:

javascript - 工具提示 D3 折线图的问题

javascript - 在嵌套集合的模型中设置 Backbone 属性

javascript - 如何使用 javascript 分隔这些字符串

javascript - d3 force 中的数组和节点映射

javascript - D3.js 复制我的数据

javascript - 将数据弹出窗口添加到 d3js map

javascript - LeafletJS - 层的默认选择

javascript - 为什么这段代码在导出到单独的模块后在 NodeJS 中不起作用?

javascript - 在 UI 中使用 Angular react 形式呈现选中的复选框

d3.js - 使用 dc 或 d3.js 中具有正负 y 轴的面积图制作图表