【问题标题】:sending json to d3js graph将 json 发送到 d3js 图
【发布时间】:2016-07-03 23:24:23
【问题描述】:

我有一系列存储的JSON objects(下)通过angular发送到我的html页面, 我遇到的问题是将信息从角度输出到我的d3.js 图表。(我想我需要将它们从JSON 转换为正常值 用于绘制我的 x 轴数据)

 { __v: 0, temp: 328, _id: 56e9417d6a8a307819c3e598 },
 { __v: 0, temp: 328, _id: 56e9417d6a8a307819c3e599 },
 { __v: 0, temp: 328, _id: 56e9417d6a8a307819c3e600 },
 { __v: 0, temp: 328, _id: 56e941826a8a307819c3e59a }

下面的$http 请求收到了来自app.js 的数据。 y axis 是销售额(对象的值),x axis 是小时(从数据库中显示的条目数量)

   $http.get('/solution-two/data3').success(function (data) {
            var hour=$scope.salesData3.length+1;
            var sales= data;
            $scope.salesData3.push({hour: hour, sales:sales});
        });

我的数组从一个数组开始,该数组将信息发送到 http 请求中

 $scope.salesData3=[
 {hour: 1,sales: 280}];

salesData3 是我的d3.js 图表的名称,所以总而言之,我认为我需要用数据库条目的长度来定义小时变量的长度 并且销售变量需要接受来自数据库的JSON 对象,我是否正确?

感谢阅读

【问题讨论】:

    标签: angularjs json node.js d3.js


    【解决方案1】:

    如果我清楚地理解了您的问题,您正在寻找可以将 JSON 中的数据发送到 D3 的结构吗?

    如果您正在绘制销售与小时的折线图,则无需检查小时的长度。相反,D3 具有检测时间格式的方法,可用于将其分配给 X 轴。

    x = d3.scale.linear().range([0, width]);
    y = d3.time.scale().range([height, 0]);
    // Set the X axis domain with time
    y.domain(d3.extent(salesData3, function (d) {
                return d.sales;
            }));
    valueLine = d3.svg.line()
                .x(function (d) {
                    return x(d.hour);
                })
                .y(function (d) {
                    return y(d.sales);
                });
    svg.append("path")
            .attr("class", "CLASS_NAME")
            .attr("id", curveId)
            .attr("d", valueLine(salesData3));
    

    此链接有一个示例,说明如何使用 JSON 数组并将其作为数据传递给 x 和 y 轴https://www.dashingd3js.com/using-json-to-simplify-code

    很好的链接,它解释了格式化时间的任务http://www.d3noob.org/2012/12/formatting-date-time-on-d3js-graph.html & http://jsfiddle.net/robdodson/KWRxW/

    【讨论】:

    • 感谢您的评论和信息,这是很棒的东西。我将图表用于其他实时信息,所以我希望将 json 更改为角度控制器中的 var 值。如,将值从 json 数组中拉出并推入 sales var,然后在 d3 上绘制图形。
    • 当 D3 原生支持数组数据结构时,恕我直言,传递数组而不是遍历数组(“从 json 数组中提取值”)然后重用该值来构建图表。
    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多