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

У меня есть данные, где 100 означает "хорошо", и все, что ниже означает "плохой"D3, Scale Как установить масштаб?

Я хочу, чтобы установить шкалу d3, так что 100 -> 1 и все ниже -> 0

I не уверен, как это сделать:

Я прочитал здесь 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 значения

EDIT: Это работает для меня.

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"); 

Edit: Документация по квантуется и пороговая весы here.

+0

Спасибо! В настоящее время я тестирую пороговую шкалу, я не могу использовать фильтры, потому что я использую библиотеку cubism.js. – nevermind

+0

Это идеальный инструмент. Поэтому для вашего предыдущего примера вы можете выполнить команду var var = d3.scale.threshold(). Domain ([100]). Range (["green", "red"]). Это отправит что-нибудь ниже 100 на красный, а все выше на зеленый. – user4815162342

Смежные вопросы