Javascript 使用d3.layout.stack()从图层访问自定义坐标
我有以下形式的数据数组:Javascript 使用d3.layout.stack()从图层访问自定义坐标,javascript,d3.js,accessor,Javascript,D3.js,Accessor,我有以下形式的数据数组: _data = [ {key: <String>, values: [<number>...]} ] 相反,我需要从每个层的值数组中读取x作为值数组中的索引,读取y作为数字。像这样: _data = [ {key: "oranges", values: [5, 6, 8]}, {key: "bananas", values: [2, 1, 9]} ] becomes "oranges": (0, 5), (1, 6)
_data = [
{key: <String>, values: [<number>...]}
]
相反,我需要从每个层的值数组中读取x作为值数组中的索引,读取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);
如何做到这一点?这就是你要找的吗
var数据=[
{键:“橙子”,值:[5,6,8]},
{键:“香蕉”,值:[2,1,9]}
];
var newData=[];
变种果实;
var-coords;
对于(变量i=0;i 警报(JSON.stringify(newData))代码>如果我正确理解了您的问题,您正在寻找合适的访问器函数,以便从D3的堆栈布局中访问特定的数据格式。以下代码应满足您的要求:
d3.layout.stack()
.values(function(d) {
return d.values.map(function(y, i) {
return { "x": i, "y": y };
});
});
调用.map()
将转换您的数据.values
数组,并返回一个数组,该数组由x
和y
坐标设置为您指定的值的对象组成。我考虑过将这些值移动到一个适当格式的数组中,但如果有可能的话,这比直接从我接收的数据中读取效率要低得多。不太可能。高积云找到了。谢谢,谢谢!太好了。
d3.layout.stack()
.values(function(d) {
return d.values.map(function(y, i) {
return { "x": i, "y": y };
});
});