Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用d3.layout.stack()从图层访问自定义坐标_Javascript_D3.js_Accessor - Fatal编程技术网

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 };
        });
    });