How to show data in a chart?

前端 未结 1 1381
长发绾君心
长发绾君心 2020-12-22 10:25

Hey there actually I am retrieving some data from database The data is is like this format

id: \"5\"
p_amount: \"120\"
p_date: \"09/20/2019\"
p_id: \"12345\"         


        
相关标签:
1条回答
  • 2020-12-22 11:26

    We used something like this, made chart.js object global, set its data from Ajax response and called update method.

    var labels = [];
    var data = [];
    var smallDB = {};
    var lastYear = 0;
    var limit = 5; // limit history to (5) years
    var obj = TestData();
    for (var i in obj) {
        var d = new Date(obj[i].b_date);
        var idy = d.getFullYear();
        lastYear = Math.max(lastYear, idy)
        var num = parseInt(obj[i].b_amount);
        smallDB[idy] = (smallDB[idy] || 0) + num;
    }
    lastYear++;
    for(var i=0;i<limit;i++) {
        labels[i] = i+lastYear-limit;
        data[i] = smallDB[i+lastYear-limit] || 0;
        console.log(labels[i], data[i]);
    }
    
    function TestData() {
      return [{
        b_date:"11/01/2017",
        b_amount:"110"
    },{
        b_date:"10/01/2016",
        b_amount:"100"
    },{
        b_date:"01/01/2020",
        b_amount:"200"
    },{
        b_date:"12/01/2018",
        b_amount:"120"
    }];
    };

    This one limits last 5 years.

    0 讨论(0)
提交回复
热议问题