2017-07-28 6 views
0

私はこのコードを持っている:表示データセットが積層されているバーの最高値untop(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日のようにこれをやろうとしています。

Image with all values

を私はこの希望: Image with wanted values

答えて

0

チェックアウトこのjsfiddleを:https://jsfiddle.net/umsbywLg/2/

基本的に私は最大値を計算し、その上で描いたこののではなく、clearifyする

積み重ねた棒の上:

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

しかし、これは私が欲しかったのではありません。それはすべてのデータセット全体の合計値なので..私はそれが各データセットのuntopから合計値を設定したいです。すべてのデータセットの合計値ではありません。 – Morloderex

+0

私はあなたが最初の画像を使用して望むもの表示するには、上記のあなたの2枚の画像を更新することができ、あなたが何を意味するか、あまりにもわかりません。それは、第2の画像に対して異なるグラフを有することを混乱させている。私はあなたを助けることができます! – MattjeS

関連する問題