2017-07-28 42 views
0

我有这样的代码:显示的条最高值时,联塔办事处的数据集堆叠(chartjs)

animation: { 
    duration: 500, 

    onComplete: function() {                  
     var ctx = this.chart.ctx; 

     var chart = this; 

     ctx.textAlign = "center"; 

     ctx.textBaseline = "middle"; 

     var datasets = this.config.data.datasets; 

     ctx.font = "15px QuickSand"; 

     datasets.forEach(function (dataset, i) { 
      switch (chart.getDatasetMeta(i).type) { 
       case "bar": 
        ctx.fillStyle = "#303030"; 

        chart.getDatasetMeta(i).data.forEach(function (p, j) 
        { 
         ctx.fillText(datasets[i].data[j], p._model.x, p._model.y - 10); 
        }); 
       break; 
      } 
     }); 
    }                
}         

而且这些数据集:

datasets: [ 
    { 
     backgroundColor: '#f87979', 
     data: [6500, 5500]}, 
    { 
     backgroundColor: '#f8f8ee', 
     data: [4800, 5600] 
    } 
] 

数据集被设置为使用堆叠。

scales: { 
    xAxes: [{ 
     barThickness: 25, 
      stacked: true, 
      ticks: { 
       beginAtZero: true, 
       padding: 0, 
       fontSize: 13 
      } 
    }], 
    yAxes: [{ 
     stacked: true, 
     display: false 
    }] 
}, 

上面的代码所做的是将值放在条上。我的问题是我想显示每个数据集上方每个数据集的最高值。 并非来自每个点的所有值。

你们能帮我解决吗?我一直在尝试像现在这样做1天。

要clearify的这个代替:

Image with all values

我想这一点: Image with wanted values

回答

0

检查出这个的jsfiddle:https://jsfiddle.net/umsbywLg/2/

基本上我计算出的最高值,然后画上在堆叠的条上:

onComplete: function() {                  
       var ctx = this.chart.ctx; 
       var chart = this; 
       ctx.textAlign = "center"; 
       ctx.textBaseline = "middle"; 

       var datasets = this.config.data.datasets; 

       ctx.font = "15px QuickSand"; 
       ctx.fillStyle = "#303030"; 

       datasets.forEach(function (dataset, i) { 
        var maxValue = 0; 
        chart.getDatasetMeta(i).data.forEach(function (p, j) { 
         if(maxValue < datasets[j].data[i]) { 
          maxValue = datasets[j].data[i]; 
         } 
        }); 

        ctx.fillText(maxValue, datasets[i]._meta[0].data[i]._view.x, 20);   
       }); 
      } 
+0

非常感谢! – Morloderex

+0

第二虽然这不是我想要的。因为它是所有数据集中的总值。我希望它能够设置每个数据集的总值。不是所有数据集的总值。 – Morloderex

+0

我不太确定你的意思,你可以更新上面的两张图片,以显示你想要使用第一张图片的内容。第二张图片有一张不同的图表令人困惑。我可以帮助你! – MattjeS