这是样本数据:
var data = [
{row: 0, col: 0, value: [{x: 1, y: 19}, {x: 2, y: 20}]},
{row: 0, col: 1, value: [{x: 1, y: 24}, {x: 2, y: 27}]},
{row: 1, col: 1, value: [{x: 1, y: 31}, {x: 2, y: 26}]},
{row: 1, col: 2, value: [{x: 1, y: 29}, {x: 2, y: 19}]},
]
我无法找到一种定义x-domain的方法。
var x1 = d3.scale.ordinal()
.domain(data.map(function(d) { return d.value.x; }))
.rangeRoundBands([0, chartW], 0.1);
这个位给出错误:
.domain(data.map(function(d) { return d.value.x; }))
如何迭代值对象的内部数组??
提前致谢!
答案 0 :(得分:2)
您需要在此处进行两次嵌套迭代:
.domain([
d3.min(data, function(d) { return d3.min(d.value, function(e) { return e.x; }); }),
d3.max(data, function(d) { return d3.max(d.value, function(e) { return e.x; }); })
]);
同样适用于y
。