将数据转换为正确的格式以创建面积图

时间:2014-04-17 15:46:15

标签: javascript d3.js

我的json数据目前看起来像这样:

var data = {"history":[
        {"date":"2013-10-15","value":15},
        {"date":"2013-11-15","value":5},
        {"date":"2013-12-15","value":5},
        {"date":"2014-01-15","value":8},
        {"date":"2014-02-15","value":5}
    ]}

我正在尝试创建一个区域图:

svg.selectAll("path.area")
        .data(d3.values(data.history))
        .append("path")
        .attr("class", "area")
        .attr("d", d3.svg.area()
            .x(function (d) { return xScale(d.date); })
            .y0(height)
            .y1(function (d) { return yScale(d.value); })
        );

我似乎无法以正确的格式获取区域函数解释的数据。

1 个答案:

答案 0 :(得分:0)

来自d3 wiki

的示例
var format = d3.time.format("%Y-%m-%d");
format.parse("2011-01-01"); // returns a Date

您可能只需要使用内置解析器将日期字符串解析为Date对象。在如上定义format变量后,您将更改行

.x(function (d) { return xScale(d.date); })

阅读:.x(function(d){ return xScale(format.parse(d.date)); })

您可能还需要相应更改xScale()功能,有关如何执行此操作的信息,请参阅wiki page about d3 Time Scales