javascript-Chart.js-沿x(时间)轴合并天到月的总计?

前端之家收集整理的这篇文章主要介绍了javascript-Chart.js-沿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轴获得了每月的刻度线,但数据点以每日精度绘制在图表中. (请参见屏幕截图.)

在继续处理数据集以手动将天累积到各自的月份时段之前,我想听听图表是否可以为我完成此操作,但我只是设置错了,还是在实际上,在将数据集提供给图表进行绘制之前,需要自己进行汇总.

谢谢你的建议!

@H_301_23@
最佳答案@H_301_23@
我通过在基础数据集的组装过程中自己进行汇总来解决此问题,然后将其提供给图表.

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
>创建hitCount对象
>检查hitCount对象是否已在数组中
>如果对象已在数组中,则在数组中增加hitCount(y).
>否则,将对象推入数组.@H_301_23@ 原文链接:https://www.f2er.com/js/531253.html

猜你在找的JavaScript相关文章