javascript - 是否可以将重复的标签(及其数据)合并到 Chart Js 中的一列中?

标签 javascript arrays charts chart.js

例如,如果我有用于标签的数组 ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'] 和数组 [ '2', '5', '7', '4'] 各自的值。

是否可以只显示所有元素“05/Feb/2019”的一列,并在该列中汇总它们的值?

图表 JS 代码

myChart = new Chart(document.getElementById("canvas"),{
    "type":temp.type,
    "data":{
        "labels":column_a,
        "datasets":[{
            "label":label_b,
            "data":column_b,
            "spanGaps": true,
            "fill":false,//true for charts like radar and polar area
            "backgroundColor":["rgba(255, 99, 132, 0.4)","rgba(255, 159, 64, 0.4)","rgba(255, 205, 86, 0.4)","rgba(75, 192, 192, 0.4)","rgba(54, 162, 235, 0.4)","rgba(153, 102, 255, 0.4)","rgba(201, 203, 207, 0.4)"],
            "borderWidth":1
            }
            ]},
            "options":{
                tooltips: {
                    callbacks: {
                        label: (tooltipItem, myChart) => {
                            const realValue = myChart.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
                            //const customValue = realValue.toFixed(2).replace(".", ",") + '%';
                            const customValue = realValue.toFixed(2).replace(".", ",");
                            const label = myChart.labels[tooltipItem.index] + ':';
                            return label + customValue;
                            }
                        }
                    },
                "scales":{
                    "yAxes":[{
                        "gridLines":{display:false},
                        "ticks":{
                            "suggestedMin":0,
                            "max":max_value_1
                        }}]}
                        }});
window.myChart = myChart

最佳答案

你可以为此使用reduce。愿这对您有帮助!

 var label = ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'];
    var value = ['2', '5', '7', '4'];

    var obj = label.reduce(function(a, b, i) {
        if(!a.hasOwnProperty(b)) {
            a[b] = 0;
        }
        console.log(a);
        a[b] += Number(value[i]);
         return a;
    },{});

    var lab = Object.keys(obj);
    var val = Object.values(obj);

关于javascript - 是否可以将重复的标签(及其数据)合并到 Chart Js 中的一列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54536014/

相关文章:

java - Array.toString() 方法仍然打印出空值

java - 饼图碧 Jade 中项目标签的不同颜色

python - Bokeh 逐年折线图程序

javascript - AngularJS $http.get 不检索后端数据

c - 为什么我们不能使用动态数组作为使用静态数组参数的函数的参数?

vb.net - 使用 System.IO.StreamWriter 写入另一行

jquery - 如何创建像Google Finance那样的动态折线图?

javascript - 如何在选中的复选框数组javascript上获取长度

javascript - 使用 JavaScript 将类添加到 'body'

javascript - 跨域 XML POST