DC.js 等值线过滤问题

DC.js Choropleth filtering Issue

我正在尝试从条形图中过滤我的等值线图上的数据。奇怪的是,它没有在 selecting 随附条形图中的条形图上显示正确的值。

这是 jsfiddle: https://jsfiddle.net/anmolkoul/jk8LammL/ 脚本代码从4794行开始

如果条形图中的 select WIN004,它应该只突出显示五个状态,工具提示应该反映数据的值。一些不存在 WIN004 的州已突出显示。

我从

更改了等值线的属性
.colors(d3.scale.quantize().range(["#F90D00", "#F63F00", "#F36F01", "#F09E01", "#EDCB02", "#DDEA03", "#ADE703", "#7EE404", "#50E104", "#24DE05", "#05DB11"]))
.colorDomain([-1, 1])

.colors(d3.scale.linear().range(["green", "white", "red"]))
 .colorDomain([-2, 0, 2])

但是我得到了很多白色状态,很难辨别突出显示的内容。一些白色状态的工具提示显示 -0.00 :/ 这里是fiddlehttp://jsfiddle.net/anmolkoul/jk8LammL/1/

所以我想要么是我的颜色范围有问题,要么是我的数据被解析的方式有问题。

理想情况下,我希望根据 riskIndicator 维度的顶部和底部值指定 .colorDomain 中的数据范围。虽然我的功能不起作用。我应该在这里使用 d3.max 还是 riskIndicator.top?

编辑: 我通过使用最小值和最大值获得了动态色域,但图形仍然没有按预期执行?这可能是地理分布图的问题吗?我进一步采用了一个有效的 geochoropleth 示例并将我的数据移植到它,甚至这给了我同样的问题,即错误地表示数据。我认为这可能是数据问题,但我使用了几个优秀的 BI 工具进行了验证,并且它们的图表正确显示了数据。

这可能是直流等值线的问题吗?

谢谢。 安摩尔

这与此问题中的问题具有相同的根本原因:

简而言之,浮点数在加减时并不总是抵消为零。 "fake group" 将确保它们在靠近时迅速归零:

function snap_to_zero(source_group) {
    return {
        all:function () {
            return source_group.all().map(function(d) {
                return {key: d.key, 
                        value: (Math.abs(d.value)<1e-6) ? 0 : d.value};
            });
        }
    };
}

已添加 to the FAQ