2014-02-13 2 views
0

У меня есть choropleth карты штатов США, показывающие общую численность, используя квантильную шкалу. Я также установил раскрывающееся меню, чтобы пользователь мог выбрать цветовую схему по своему выбору с использованием цветовых схем с цветовым буфером. При выборе карты заполняется новая цветовая схема.D3.js Choropleth Map - Измените цветовую схему на выбор

Моя проблема заключается в выборе цветовой схемы, формы заполняются только одним цветом в цветовой гамме, а не рядом цветов, основанных на значении популяции. Я знаю, что проблема в том, что я на самом деле не получаю доступ к свойствам data.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” 
     } 
    }) 

}); 

ответ

2

проблема заключается в том, что вы заменить старую цветовую гамму, а не просто обновлять его диапазон, и вы никогда не установить домен на новом уровне.

var color = d3.scale.quantile() //create new quantile scale 
    .range(colorScheme[5]); //set it's range 

Если ваша шкала хранится в переменной color, просто измените ее в обработчике событий:

color.range(colorScheme[5]); //change the range 
+0

СПАСИБО !!! Это было правильное решение. – bailey