2

我的 json 数据中有嵌套数组,但我不知道如何在 d3(初学者)中调用它们。

在下面的示例中,我试图构建一个 SVG 条形图,使用来自“January”数组的数据,嵌套在 Json 的“meals”数组中。

Json 看起来像这样:

{
"meals":[
    {"january":[
        {},{}
    ]},

    {"february":[
        {},{}
    ]},

    {"march":[
        {},{}
    ]},
  }

d3 代码看起来像这样。“图表”采用下拉菜单的用户输入。在这种情况下,它基本上返回“餐点”:

    var chart = selection.options[selection.selectedIndex].id;

    var dataset = data[chart];

    var svg = d3.select ("body") 
                .append ("svg")
                .attr("width", w)
                .attr("height", svgHeight+30);


    svg.selectAll("rect") 
                .data(dataset.january) //***HERE is where I'm having trouble***
                    .enter()
                    .append("rect") 
4

1 回答 1

1

d3.nest()可以将这样的数据转换为可解析的数组。这些“教程”示例很棒:http ://bl.ocks.org/phoebebright/raw/3176159/

鉴于它对您的项目是可行的,否则最好简单地更改数据格式以便更轻松地遍历,例如

{
"meals":[
    {"name":"salad","month":"january"},
    {"name":"burger","month":"february"}, //etc...
于 2013-10-02T17:16:07.857 回答