2013-07-23 129 views
2
var scale = d3.scale.threshold().domain([100]).range([0,100]) 

我有數據,其中100的意思是「良好」及以下的任何意思是「壞」D3,比例如何設置比例?

我想成立一​​個D3規模,使100 - 低於> 1,任何事情是 - > 0

我也不太清楚該怎麼做:

我讀到這裏https://github.com/mbostock/d3/wiki/Quantitative-Scales#wiki-linear

這個例子:

var color = d3.scale.linear() 
.domain([-1, 0, 1]) 
.range(["red", "white", "green"]); 

,但我不知道,因爲我的域名是連續的0 - > 100,但我希望我的範圍是0,1值

編輯我如何應用它: 這爲我工作。在量化和門檻秤here文檔:

var scale = d3.scale.threshold().domain([100]).range([0,100]) 

console.log(scale(1)) //returns 0 
console.log(scale(99.9)) //returns 0 
console.log(scale(88.9)) //returns 0 
console.log(scale(100)) //returns 100 

回答

2

你可以使用過濾器的造型,當它來分隔數據:

d3.selection().filter(function(d) { return d === 100}).attr("class", "green"); 
d3.selection().filter(function(d) { return d < 100}).attr("class", "red"); 

編輯。

+0

謝謝!我目前正在測試閾值比例,我無法使用過濾器,因爲我正在使用cubism.js庫 – nevermind

+0

這是一個完美的工具。因此,對於你以前的例子,你可以做'var scale = d3.scale.threshold()。domain([100])。range([「green」,「red」])''。這會將100以下的任何內容發送到紅色,並且所有內容都會變成綠色。 – user4815162342