javascript - Chart.js 折线图中最后 3 小时数据值的总和

标签 javascript chart.js momentjs linechart

我在chart.js中有一个问题 我有一个折线图,y 轴是整数类型,x 轴是时间类型(以小时为单位)。 我有一个包含 10 个数据点的数据集。

现在我只想要过去 3 小时的总和。 我知道如何总结所有这些,但不选择特定的,而不需要编写一些大代码。

那么,chart.js 或 moment.js 中是否内置了任何简单的解决方案?

谢谢。

最佳答案

我不知道我是否完全理解你的问题。但是,如果您有一个数组(数据点)并且需要获取一定数量的最后一个元素,则可以使用 arr.slice(-3)

使用 Chart.js 检查此示例:

let ctx = document.getElementById("myChart").getContext('2d');
let myChart = new Chart(ctx, {
    type: 'line',
    data: {
        labels: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        datasets: [{
            label: 'datapoints',
            backgroundColor: 'rgba(0, 0, 0, 0)',
            borderColor: 'rgba(255, 99, 132, 1)',
            data: [12, 19, 3, 15, 2, 3, 7, 10, 5, 8],
            borderWidth: 2
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

let nLastElements = 3;
let sum = myChart.data.datasets[0]
          .data
          .slice(-nLastElements)
          .reduce((a, b) => a + b, 0);

console.log("Sum of last " + nLastElements + " elements: " + sum);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.bundle.min.js"></script>
<canvas id="myChart" width="400" height="200"></canvas>

关于javascript - Chart.js 折线图中最后 3 小时数据值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672326/

相关文章:

javascript - ng-click 不适用于我的任何 div

javascript - 如何使用 moment.js 解析 ISO 8601 格式的持续时间?

javascript - 使用Scrapy抓取时无法在源代码中找到显示的数据

javascript - Chart.js - 同一 Canvas 上的多个圆环图

javascript - angular-chartjs 条形图中每列的不同颜色

javascript - 为什么Chartjs导出图片时背景是黑色的

javascript - 如何使用moment js查找两个时区之间的时差

javascript - 生成日期并将新属性添加到对象数组中

javascript - 对象中的闭包或处理程序?

javascript - Git 将图表记录到数组中