我有一个数据集以 acubism
的形式返回metric
,因此它具有值
0 = very bad
1 = okay
2 = bad
我可以写一个d3.scale
这样的
var ord = d3.scale.ordinal( [ 0, 1, 2, null ] ).range( [ -2, 2, -1, null ] );
for( var i=0; i<=2; i++ ) {
console.log( i + ': ' + ord(i) );
}
console.log( 'null: ' + ord(null) );
终端返回
0: -2
1: 2
2: -1
null: null
看起来不错......但是,当我尝试将此比例应用于立体主义水平图表时,图表呈现良好,除了所表示的数据没有将坏值显示为负值和好值作为正值:
d3.select("body").selectAll(".horizon")
.data( metrics )
.enter().insert("div", ".bottom")
.attr("class", "horizon")
.call(
context.horizon()
.scale( d3.scale.ordinal([ 0, 1, 2, null ]).range([ -2, 2, -1, null ]) )
);
我究竟做错了什么?