d3中json数据的折线图 [英] line chart of json data in d3

查看:54
本文介绍了d3中json数据的折线图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习d3.我想使用json数据制作折线图.我正在使用的数据是:

I am learning d3. I want to make a line chart using json data. The data I am using is:

var data = [
    { "at": "2014-11-18T07:29:03.859Z", "value": 0.553292},
    { "at": "2014-11-18T07:28:53.859Z", "value": 0.563292},
    { "at": "2014-11-18T07:28:43.859Z", "value": 0.573292},
    { "at": "2014-11-18T07:28:33.859Z", "value": 0.583292},
    { "at": "2014-11-18T07:28:13.859Z", "value": 0.553292},
    { "at": "2014-11-18T07:28:03.859Z", "value": 0.563292}]; 

我希望x轴为"at",y轴为"value".另外,我只需要将"at"解析为时间.请向我提供指示,说明我将如何进一步进行操作.到目前为止,我已经实现的代码如下.我试图为此寻找文档,但没有找到.

I want "at" on x axis and "value" on y axis. Also I need to parse the "at" as time only. Please provide me pointers how i will proceed further. The code till now I have implemented is below. I tried to look for documentation for this but found none.

<html>
    <head>
        <title>line chart on json</title>
        <script src="http://d3js.org/d3.v2.js"></script>
        <style>
            /* tell the SVG path to be a thin blue line without any area fill */
            path {
                stroke: steelblue;
                stroke-width: 1;
                fill: none;
            }
        </style>
    </head>
    <body>

    <script>

    var width = 400;
    var height = 150;

    var data = [
    { "at": "2014-11-18T07:29:03.859Z", "value": 0.553292},
    { "at": "2014-11-18T07:28:53.859Z", "value": 0.563292},
    { "at": "2014-11-18T07:28:43.859Z", "value": 0.573292},
    { "at": "2014-11-18T07:28:33.859Z", "value": 0.583292},
    { "at": "2014-11-18T07:28:13.859Z", "value": 0.553292},
    { "at": "2014-11-18T07:28:03.859Z", "value": 0.563292}]; 

    var x = d3.scale.ordinal(); 

    var y = d3.scale.linear().range([height, 0]);
    var xAxis = d3.svg.axis().scale(x).orient("bottom"); 
    var line = d3.svg.line()
        .x(function(d) { return x(d.at);})
        .y(function(d) { return y(d.value); })
        .interpolate("linear")
    var graph = d3.select(graph1).append("svg:svg").attr("width", "300").  attr("height", "150");
    function make_y_axis() {
        return d3.svg.axis().scale(y).orient("left").ticks(5)
    }

    </script>

    </body>
</html>

推荐答案

看此示例 http://bl.ocks.org/crayzeewulf/9719255

曾经使用过2张图,但是您可以只使用一张图并根据需要放置数据.

There used 2 graphs, but you can use just one and place data as you want.

关于日期,您可以看以下示例 http://jsfiddle.net/robdodson/KWRxW/,特别是xAxis.

As for date you can look at this example http://jsfiddle.net/robdodson/KWRxW/, xAxis in particular.

var xAxis = d3.svg.axis()
    .scale(x)
    .orient('bottom')
    .ticks(d3.time.days, 1)
    .tickFormat(d3.time.format('%a %d'))
    .tickSize(0)
    .tickPadding(8);

这篇关于d3中json数据的折线图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆