2016-10-03 20 views
1

我想將chroma.js合併到我的小冊子地圖中,以便我可以在分位數,等間隔和k-means之間切換,但是域的第二個和第三個參數功能不會改變任何東西leaflet和chroma.js .domain參數不起作用

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; 
     } 
    } 

有誰知道爲什麼改變桶或分類方法的數量並不能改變什麼?

回答

2

奇怪......我看着它,我認爲圖書館有問題。我們來考慮一個非常簡單且有文檔記錄的例子 如果你看一下在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](而不是[0,25,50,75 ,100]);如你所說,第二個參數並沒有改變任何東西。您可能想要將該行爲標記爲插件github頁面上的錯誤。除非有人有一個很好的解釋?

0

我有同樣的問題,然後我意識到,在我定義'ColorScale'時,我的域尚未填充。你確定在你定義ColorScale時'voterList'有你的數據集嗎?