我试图将chroma.js合并到我的传单地图中,这样我就可以在分位数、相等间隔和k-均值之间切换,但是域函数的第二个和第三个参数不会改变任何东西。
var colorScale = chroma.scale('YlGnBu').domain(voterList, 3, 'quantiles');下面是函数的完整代码
this.getRegionItemColor = function(item) {
var regionData = Mapbook.getRegionData();
var voterList = Mapbook.getColorScheme();
var colorScale = chroma.scale('YlGnBu').domain(voterList, 3, 'quantiles');
if (!_.isUndefined(item)) {
var voters = item.voters,
minVoters = regionData.min_voters,
maxVoters = regionData.max_voters;
var alpha = colorScale(voters);
return alpha;
}
else {
return 0;
}
}有人知道为什么改变桶的数量或分类方法不会改变什么吗?
发布于 2016-10-03 23:06:14
奇怪..。我查了一下,我确实认为图书馆有问题。让我们考虑一个非常简单和文档化的例子。如果您查看关于github的文档,下面是编写的内容(https://github.com/gka/chroma.js/wiki/Color-Scales):
// Calling .domain() with no arguments will return the current domain.
chroma.scale(['white', 'red']).domain([0, 100], 4).domain() // [0, 25, 50, 75, 100]但是,当我做同样的操作时,它会返回0,100;正如您所说的,第二个参数没有改变任何东西。您可能希望将此行为标记为插件github页面上的bug。除非有人有很好的解释?
发布于 2017-02-24 02:07:31
我也有同样的问题,然后我意识到在我定义“ColorScale”的时候,我的域还没有被填充。您确定在定义voterList时“ColorScale”中有数据集吗?
https://stackoverflow.com/questions/39838012
复制相似问题