Javascript D3.js Choropleth贴图-选择时更改颜色方案
我有一张美国各州的choropleth地图,用分位数表示总人口。我还设置了一个下拉菜单,允许用户使用colorbrewer定义的配色方案选择自己选择的配色方案。选择时,地图将填充新的颜色方案 我的问题是在颜色方案选择上,形状在颜色方案中仅填充一种颜色,而不是基于总体值的一系列颜色。我知道问题在于我没有实际访问“路径”中的数据属性.value。我只是不知道我需要做些什么才能做到这一点。欢迎提供任何建议。以下是我的颜色更改功能:Javascript D3.js Choropleth贴图-选择时更改颜色方案,javascript,jquery,colors,d3.js,colorbrewer,Javascript,Jquery,Colors,D3.js,Colorbrewer,我有一张美国各州的choropleth地图,用分位数表示总人口。我还设置了一个下拉菜单,允许用户使用colorbrewer定义的配色方案选择自己选择的配色方案。选择时,地图将填充新的颜色方案 我的问题是在颜色方案选择上,形状在颜色方案中仅填充一种颜色,而不是基于总体值的一系列颜色。我知道问题在于我没有实际访问“路径”中的数据属性.value。我只是不知道我需要做些什么才能做到这一点。欢迎提供任何建议。以下是我的颜色更改功能: $('#ColorSelection').change(functio
$('#ColorSelection').change(function(){
newColor = $('#ColorSelection').val();
var colorSchemeSelect = newColor;
var colorScheme = colorbrewer[colorSchemeSelect];
var color = d3.scale.quantile()
.range(colorScheme[5]);
d3.selectAll("path").style("fill", function (d) {
var value = d.properties.value;
if (value) {
return color(value);
} else {
return "#ccc”
}
})
});
问题是,您正在替换旧的颜色比例,而不仅仅是更新其范围,而且您从未在新比例上设置域
var color = d3.scale.quantile() //create new quantile scale
.range(colorScheme[5]); //set it's range
如果您的刻度存储在变量color
中,只需在事件处理程序中修改它:
color.range(colorScheme[5]); //change the range