d3.js地图颜色范围不按域范围显示

d3.js地图颜色范围不按域范围显示,d3.js,data-visualization,choropleth,D3.js,Data Visualization,Choropleth,这是我设置地图颜色范围的方法 var color = d3.scaleThreshold() .domain([1,1000]) .range(d3.schemeCategory20b); 我在域中设置的数据中的值不超过1000,因此在设置此范围时,我给了域范围从1到1000,它没有按预期显示颜色,就像我想用类似域的颜色显示我的地图一样 范围[1,50]->绿色和[51250]->黄色,[251700]->深绿色和 [7011000]->黄色 我该怎么做?有什么想法吗?

这是我设置地图颜色范围的方法

    var color = d3.scaleThreshold()
    .domain([1,1000])
    .range(d3.schemeCategory20b);
我在域中设置的数据中的值不超过1000,因此在设置此范围时,我给了域范围从1到1000,它没有按预期显示颜色,就像我想用类似域的颜色显示我的地图一样 范围[1,50]->绿色和[51250]->黄色,[251700]->深绿色和 [7011000]->黄色
我该怎么做?有什么想法吗?

在阈值范围内,如果范围有N个值,则域必须有N-1个值

因此,只需准确地说出您在问题中告诉我们的量表:

var color = d3.scaleThreshold()
    .domain([50, 250, 700])
    .range(["green", "yellow", "darkgreen", "yellow"]);
下面是一个基本演示,将鼠标悬停在每个矩形上以查看其值:

var body=d3.选择(“body”);
var color=d3.scaleThreshold()
.domain([50250700])
.范围([“绿色”、“黄色”、“深绿色”、“黄色”);
body.selectAll(空)
.数据(d3.范围(51.map)(d=>d*20))
.输入()
.附加(“div”)
.style(“背景色”,d=>颜色(d))
.on(“鼠标悬停”,功能(d){
日志(“值:+d+”,颜色:+color(d))
})
div{
最小宽度:5px;
最小高度:20px;
显示:内联块;
保证金:1px;
边框:1px纯色灰色;
}
.作为控制台包装{最大高度:30%!重要;}

由于您的范围有20种颜色,您的域必须有19个值。现在我对域和范围没有混淆,再次感谢!!:)优雅的演示……)