Javascript 角度谷歌图表-构建和排序数据表

Javascript 角度谷歌图表-构建和排序数据表,javascript,angularjs,charts,google-visualization,Javascript,Angularjs,Charts,Google Visualization,我正在使用绘制Angularjs应用程序中的线/面积图,该图来自通过sparql查询检索的rdf数据,并且在应用程序中以类似json的格式提供 在主控制器中,我声明了如下绘图函数: $scope.createChart = function () { var json1 = $scope.entities // here I have my data var rows = []

我正在使用绘制Angularjs应用程序中的线/面积图,该图来自通过sparql查询检索的rdf数据,并且在应用程序中以类似json的格式提供

在主控制器中,我声明了如下绘图函数:

$scope.createChart = function () {           

        var json1 = $scope.entities     // here I have my data                   
        var rows = []

        // populate rows with data:
        for (var key in json1) {
            // json1 has extra data I don't need 
            if (json1[key]['sdmx-dimension:refTime'] && json1[key]['dpc:deads']) {
                var date = new Date(json1[key]['sdmx-dimension:refTime']);                           
                var deads = json1[key]['dpc:deads']
                rows.push({ c: [ { v:date }, { v:deads } ] })
            }
        }  

        $scope.myChartObject = {
          "type": "AreaChart",
          "data": {
            "cols": [
              {
                "id": "date",
                "label": "Date",
                "type": "date"
              },
              {
                "id": "deaths",
                "label": "Deaths",
                "type": "number"
              }                     
            ]
          },
          "options": {
            "title": "Deaths trend",                
            "height": 400,
            "width": 600,
            "vAxis": {
              "title": "Deaths",
            },
            "hAxis": {
              "title": "Date"
            }
          }
        }

        // attach the rows to the chart object
        $scope.myChartObject.data.rows = rows

        // template containing the chart
        $scope.callTemplate('drawChart', '#right', true)
}

// wait for sparql query to retrieve data before create chart
// otherwise an empty chart will be drawn!
window.setTimeout( function(){ $scope.createChart() }, 3000);
使用此解决方案,我能够用数据绘制图表,但问题是:日期排序不正确,因此趋势线在图表上呈之字形:

我尝试对行数组使用排序函数:

rows.sort([{column:0}])
但最终的订单比最初的订单更糟糕

我不能像这样对图表对象使用排序:

$scope.myChartObject.data.sort([{column:0}])
因为这不是一个数组

日期的格式如下:
'yyyy-mm-dd'
(例如
'2020-02-24'
) 即使我在新的日期分配之前将其修改为“yyyy,mm,dd”,似乎也没有任何改进

这里
console.log(myCharObject)

这里,如果我在html模板中打印
{{myCharObject}}
变量:

如何对这些日期进行排序?
我是否应该使用其他方法来定义所描述的图表?

要对对象数组进行排序,需要提供自定义排序功能

在添加到图表数据之前,请尝试使用以下命令对行进行排序

// sort
rows.sort(function (rowA, rowB) {
  return rowA.c[0].v.getTime() - rowB.c[0].v.getTime();
});
e、 g

    // populate rows with data:
    for (var key in json1) {
        // json1 has extra data I don't need 
        if (json1[key]['sdmx-dimension:refTime'] && json1[key]['dpc:deads']) {
            var date = new Date(json1[key]['sdmx-dimension:refTime']);                           
            var deads = json1[key]['dpc:deads']
            rows.push({ c: [ { v:date }, { v:deads } ] })
        }
    }  

    // sort
    rows.sort(function (rowA, rowB) {
      return rowA.c[0].v.getTime() - rowB.c[0].v.getTime();
    });
有关示例,请参见以下工作代码段

//测试数据
var行=[];
push({c:[{v:newdate(2020,2,1)},{v:7}]});
push({c:[{v:newdate(2020,1,1)},{v:7}]});
push({c:[{v:newdate(2020,0,1)},{v:7}]});
//排序前
console.log(“之前的第1行”,第[0].c[0].v行);
//分类
rows.sort(函数(rowA,rowB){
返回rowA.c[0].v.getTime()-rowB.c[0].v.getTime();
});
//排序后

console.log(“之后的第1行”,第[0].c[0].v行)好极了!我尝试使用自定义排序函数,但没有使用最后的
.v.getTime()
部分进行比较