gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:56:51 25 4
gpt4 key购买 nike

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

"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);
}
  1. 从基础数据源中提取日期
  2. 从日期中提取 yyyy-mm
  3. 创建 hitCount 对象
  4. 检查 hitCount 对象是否已经在数组中
  5. 如果对象已经在数组中,则递增数组中的 hitCount (y)。
  6. 否则,将对象压入数组。

关于javascript - Chart.js - 沿 x(时间)轴合并天数到月数的总计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com