DC.js Choropleth过滤问题

时间:2015-03-25 21:22:29

标签: dc.js

我正试图从条形图中过滤我的等值线图表上的数据。奇怪的是,它从附带的条形图中选择一个条形图时没有显示正确的值。

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

如果我从条形图中选择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:/ 这是小提琴http://jsfiddle.net/anmolkoul/jk8LammL/1/

所以我想我的颜色范围有问题,或者我的数据是如何解析的。

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

修改 我通过使用最小值和最大值来获得颜色域动态,但图形仍未按预期执行?这可能是geochoropleth图表的一个问题吗?我进一步采用了一个geochoropleth工作示例并将我的数据移植到它,甚至这给了我同样的错误表示数据的问题。我虽然可能是一个数据问题,但我使用了一些好的BI工具进行了验证,他们的地图图表正确地显示了数据。

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

谢谢。 Anmol

1 个答案:

答案 0 :(得分:1)

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

Crossfilter showing negative numbers on dc.js with no negative numbers in the dataset

简而言之,浮点数在添加和减去时不会总是抵消为零。这个"假团体"将确保他们在接近时突然变为零:

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