繁体   English   中英

D3:序数刻度不适用于对象数组

[英]D3: ordinal scale not working with array of objects

仍在努力与d3。

我尝试建立一个序数标度,其中域是对象数组。 不知何故,rangeBands无法使用这种类型的数组。 它适用于字符串或数字数组。 有人可以解释为什么吗?

var number_data = [1,2,3,4,5];

var string_data = ["1","2","3","4","5"]

var object_data = [{"test":"1" },{"test":"2"},{"test":"3"},{"test":"4"},{"test":"5"}]

console.log("+++ Array of Numbers +++")
var scale= d3.scale.ordinal()
                .domain(number_data)
                .rangeBands([0,100]);

number_data.forEach(function(d){
    console.log(scale(d));
});

console.log("+++ Array of Strings +++")
scale.domain(string_data);

string_data.forEach(function(d){
    console.log(scale(d));
});

console.log("+++ Array of Objects +++")
scale.domain(object_data);

object_data.forEach(function(d){
    console.log(scale(d));
});

http://jsfiddle.net/tgtrtv9e/

您不能使用具有顺序刻度的对象。 在内部,从输入到输出的映射使用D3映射,该映射将键(即输入)强制转换为字符串。 对于对象, 所有对象的结果均为"[object Object]" 也就是说,所有对象在序数尺度上“看起来”相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM