gpt4 book ai didi

javascript - 如何更新 crossfilterDimension.filter() 上的 map 比例?

转载 作者:行者123 更新时间:2023-12-03 12:38:01 25 4
gpt4 key购买 nike

我正在开发一个使用 d3、dc 和 crossfilter 构建的仪表板。数据集是这样的 tsv:
ID类型值
1 流行 10000
1 变量 100
2 流行 15000
2 var -500
等等...

我创建的第一个维度位于“类型”列,我对其进行过滤以仅使用 I 指标类型。在这种情况下,每个城市的人口“pop”的绝对值
与使用 dc.js 相比,我制作了一张 map (使用scale.threshold 或scale.quantize)和一些图表,其中数据集以这种方式过滤。

我还有一个按钮,允许更改“类型”过滤器以使用数据集中的其他指标。在此示例中,“var”是市镇中新居民的数量。
这是在单击按钮时更新维度的代码:

$(settings.container + " > button").click(function() {
//change the active state of the button
$(settings.container + " > button").removeClass('active');
$(this).addClass('active');

//get the name of the indicator type to be filtered from the data-filter button attribute
var val = $(this).attr('data-filter');


if(val){// if data-filter exist -> filter the crossfilter dimension
prinDashboard.dim[settings.dim.dim].filter(val);
}else{// else filterAll
prinDashboard.dim[settings.dim.dim].filterAll();
}

//redraw all the dc chart and mapp
dc.redrawAll();
})

dc.js 负责所有 map 和图表更新,并且一切正常,但 map 比例不会更新以适应新数据集。
例如,如果我最初定义一个输出这5个刹车的scale.quantize:0-5000、5000-1000、10000-15000、15000-20000、20000-25000当我更新数据集时,“var”值也适合这些刹车现在已经毫无意义了。
我想要的是能够使用新数据集重建比例并更新 map 。
有什么办法可以在dc中做到这一点吗?或者我如何使用普通的 d3 来“破解” dc 的功能?

我真的很感激任何想法!

谢谢

最佳答案

你试过吗calculateColorDomain

我认为您不需要这样做,但很多事情在 dc.js 中不会在应该自动重新缩放时自动重新缩放。

您可以做的另一件事是简单地重新分配色标。不过这实在是太糟糕了。

不管你有没有想出解决办法,请file an issue 。应自动重新计算色标。

关于javascript - 如何更新 crossfilterDimension.filter() 上的 map 比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com