Javascript Chart.js-沿x(时间)轴合并天数到月份的合计?

Javascript Chart.js-沿x(时间)轴合并天数到月份的合计?,javascript,chart.js,Javascript,Chart.js,我正在将两个每日统计数据集输入我的图表。如您所见,每个元素都表示特定日期的值 "data":[[{"y":"1", "x":"2018-04-01T04:00:00Z"}, {"y":"14", "x":"2018-04-02T04:00:00Z"}, {"y":"5", "x":"2018-04-03T04:00:00Z"}, {"y":"7", "x":"2018-04-04T04:00:00Z"}, ... x

我正在将两个每日统计数据集输入我的图表。如您所见,每个元素都表示特定日期的值

"data":[[{"y":"1",  "x":"2018-04-01T04:00:00Z"},
         {"y":"14", "x":"2018-04-02T04:00:00Z"},
         {"y":"5",  "x":"2018-04-03T04:00:00Z"},
         {"y":"7",  "x":"2018-04-04T04:00:00Z"},
         ...
x轴的定义如下:

xAxes: [{
         type: 'time',
         distribution: 'series',
         time: {
                unit: 'month'
               }
        }]
我(天真地?)认为图表会将日值汇总到相应的月份桶中,但这不是我得到的结果。相反,我得到了沿x轴的每月刻度线,但数据点在图表中以每日精度绘制。(见截图。)

在我继续并重新处理我的数据集以手动将天数汇总到各自的月份桶之前,我想知道图表是否确实可以为我这样做,但我只是设置错误,或者在将数据集提供给图表进行绘图之前,我是否真的需要自己处理此摘要


谢谢你的建议

我解决了这个问题,我自己在组装底层数据集的过程中进行了汇总,然后将其提供给图表

var dayDate = new Date($scope.insights.locationMetrics[lm].metricValues[metric].dimensionalValues[dim].timeDimension.timeRange.startTime);
var monthDate = dayDate.getFullYear() + "-" + (dayDate.getMonth() + 1);

var hitCount = {
    y: $scope.safeNumber($scope.insights.locationMetrics[lm].metricValues[metric].dimensionalValues[dim].value),
    x: monthDate
}
var alreadyRecorded = hits[labelIdx].findIndex(obj => obj.x == hitCount.x)

if (alreadyRecorded > -1) {
    hits[labelIdx][alreadyRecorded].y += Number(hitCount.y);
}
else {
    hits[labelIdx].push(hitCount);
}
  • 从基础数据源提取日期
  • 从日期中提取yyyy-mm
  • 创建命中计数对象
  • 检查命中计数对象是否已在阵列中
  • 如果对象已在数组中,则增加数组中的命中数(y)
  • 否则,将对象推入数组

  • 顺便说一句,我随后将这个“时间”图表转换为“折线”图表。为x轴显式设置月份标签的格式需要做一些额外的工作,但更好的是,对x轴进行更明确的控制。