我正在尝试在印度地图Chart上应用一个choropleth。但无法达到结果-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 上应用choropleth,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47474268/

10-11 01:48