我有以下形式的数据数组:
_data = [
{key: <String>, values: [<number>...]}
]
如果每个JSON对象中的“值”变量是JSON坐标数组(即“ x:?,y:?”),则可以使用以下代码:
d3.layout.stack()
.values(function(d) {
return d.values;
});
相反,我需要从每个图层的values数组中读取x作为values数组中的索引,并将y作为数字。像这样:
_data = [
{key: "oranges", values: [5, 6, 8]},
{key: "bananas", values: [2, 1, 9]}
]
becomes
"oranges": (0, 5), (1, 6), (2, 8);
"bananas": (0, 2), (1, 1), (2, 9);
如何才能做到这一点?
如果我正确理解了您的问题,那么您正在寻找合适的访问器函数来从D3的堆栈布局中访问您的特定数据格式。下面的代码应该可以满足您的需求:
d3.layout.stack()
.values(function(d) {
return d.values.map(function(y, i) {
return { "x": i, "y": y };
});
});
的调用.map()
将转换您的data.values
数组,并返回一个数组,该数组由将对象x
和y
坐标设置为您指定的值的对象组成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句