javascript - 使用 d3.layout.stack() 从图层访问自定义坐标

标签 javascript d3.js accessor

我有以下形式的数据数组:

_data = [
    {key: <String>, values: [<number>...]}
]

如果每个 JSON 对象中的“values”变量是 JSON 坐标数组(即“x: ?, y: ?”),我可以使用以下内容:

d3.layout.stack()
    .values(function(d) {
        return d.values;
    });

相反,我需要从每个层的值数组中读取 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);

如何做到这一点?

最佳答案

如果我正确理解您的问题,您正在寻找适当的访问器函数来从 D3 的堆栈布局中访问您的特定数据格式。以下代码应该可以满足您的要求:

d3.layout.stack()
    .values(function(d) {
        return d.values.map(function(y, i) {
            return { "x": i, "y": y };
        });
    });

.map() 的调用将转换您的 data.values 数组并返回一个由具有 x 的对象组成的数组>y 坐标设置为您指定的值。

关于javascript - 使用 d3.layout.stack() 从图层访问自定义坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313512/

相关文章:

javascript - 我应该用什么来用 JS 创建 2D 游戏(跑酷游戏)?

d3.js - 如何在 d3 力布局中依赖重力数据

C++:类内的直接访问器或访问函数?

ruby - 使用访问器方法即时创建对象

javascript - 在 JAVASCRIPT 中将 div 高度设置为 window.innerHeight

javascript - 理解箭头函数——为什么这个不起作用而这个起作用?

javascript - 使用 React 创建响应式 svg

c# - 公共(public)变量与带有访问器的私有(private)变量

javascript - 使用 AngularJS require 选项调用另一个指令

javascript - 使用仅显示唯一值的 D3 对列表进行排序