2017-09-17 12 views
0

グラフ・バーの値を半分に分割してみましたが、機能しません!Chart.jsの水平バーにテキストセンターの数を揃える方法は?

Code link

enter image description here

Chart.helpers.each(
 
      meta.data.forEach(function(bar, index) { 
 
       data = dataset.data[index]; 
 
       if (i == 0) { 
 
       ctx.fillText(data, bar._model.x/1.6, bar._model.y + 4); 
 
       } else { 
 
       ctx.fillText(data, bar._model.x-25, bar._model.y + 4); 
 
       } 
 
      }),

+0

uは私に –

+0

を助けることができるなら、私に知らせ@GRUNTあなたがの価値センターを表示しようとしています各バー.. [this](https://i.stack.imgur.com/LBuOw.png)のように? –

+0

@GRUNTはい私は午前中です! –

答えて

1

次のようにして、(meta.dataループ内)の各水平バーの中心位置を取得することができます。

var barWidth = bar._model.x - bar._model.base; 
var centerX = bar._model.base + barWidth/2; 

と位置を取得した後、それに応じてカウントテキストを描画...

Chart.helpers.each(this.data.datasets.forEach(function(dataset, i) { 
    var meta = chartInstance.controller.getDatasetMeta(i); 
    Chart.helpers.each(meta.data.forEach(function(bar, index) { 
     var data = dataset.data[index]; 
     var barWidth = bar._model.x - bar._model.base; 
     var centerX = bar._model.base + barWidth/2; 
     if (i == 0) { 
     ctx.fillText(data, centerX, bar._model.y + 4); 
     } else { 
     ctx.fillText(data, centerX, bar._model.y + 4); 
     } 
    }), this); 
}), this); 

う - live demo

関連する問題