Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js Choropleth贴图-选择时更改颜色方案_Javascript_Jquery_Colors_D3.js_Colorbrewer - Fatal编程技术网

Javascript D3.js Choropleth贴图-选择时更改颜色方案

Javascript D3.js Choropleth贴图-选择时更改颜色方案,javascript,jquery,colors,d3.js,colorbrewer,Javascript,Jquery,Colors,D3.js,Colorbrewer,我有一张美国各州的choropleth地图,用分位数表示总人口。我还设置了一个下拉菜单,允许用户使用colorbrewer定义的配色方案选择自己选择的配色方案。选择时,地图将填充新的颜色方案 我的问题是在颜色方案选择上,形状在颜色方案中仅填充一种颜色,而不是基于总体值的一系列颜色。我知道问题在于我没有实际访问“路径”中的数据属性.value。我只是不知道我需要做些什么才能做到这一点。欢迎提供任何建议。以下是我的颜色更改功能: $('#ColorSelection').change(functio

我有一张美国各州的choropleth地图,用分位数表示总人口。我还设置了一个下拉菜单,允许用户使用colorbrewer定义的配色方案选择自己选择的配色方案。选择时,地图将填充新的颜色方案

我的问题是在颜色方案选择上,形状在颜色方案中仅填充一种颜色,而不是基于总体值的一系列颜色。我知道问题在于我没有实际访问“路径”中的数据属性.value。我只是不知道我需要做些什么才能做到这一点。欢迎提供任何建议。以下是我的颜色更改功能:

$('#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