2017-12-13 7 views
1

私は時間ベースのスケールでbarchartに問題があります。しばらくの間データがない場合、バーは広いです。chart.jsタイムスケールの広いバー

var element = document.querySelector('.line-chart'); 
 

 
var options = { 
 
    legend: { 
 
     position: 'bottom' 
 
    }, 
 
    hover: { 
 
     mode: 'point', 
 
     intersect: false 
 
    }, 
 
    tooltips: { 
 
     mode: 'x', 
 
     intersect: false, 
 
     callbacks: { 
 
      title: function (tooltip, data) { 
 
       return; 
 
      }, 
 
      label: function (tooltip, data) { 
 
       return ; 
 
      }, 
 
      footer: function (tooltip, data) { 
 
       return; 
 
      } 
 
     } 
 
    }, 
 
    scales: { 
 
     xAxes: [{ 
 
      id: 'timescale', 
 
      type: 'time', 
 
      unit: 'day', 
 
      unitStepSize: 1, 
 
      time: { 
 
       displayFormats: { 
 
        'millisecond': 'DD MMMM YYYY HH:mm', 
 
        'second': 'mm:ss', 
 
        'minute': 'HH:mm', 
 
        'hour': 'HH:mm', 
 
        'day': 'DD MMM', 
 
        'week': 'DD MMM', 
 
        'month': 'DD MMMM', 
 
        'quarter': '[Q]Q - YYYY', 
 
        'year': 'YYYY', 
 
       } 
 
      }, 
 
      display: true, 
 
      position: 'bottom', 
 
      scaleLabel: { 
 
       display: true, 
 
       labelString: "Heure", 
 
      } 
 
     }], 
 
     yAxes: [{ 
 
      id: 'consumption', 
 
      type: 'linear', 
 
      position: 'left', 
 
      ticks: { 
 
       beginAtZero: true 
 
      }, 
 
      scaleLabel: { 
 
       display: true, 
 
       labelString: "Consommation", 
 
      } 
 
     }] 
 
    } 
 
} 
 

 
var graph = new Chart(element, { 
 
    type : 'bar', 
 
    data : { 
 
    labels : [], 
 
    datasets : [{ 
 
     label: 'datasets1', 
 
     type: 'bar', 
 
     backgroundColor: Chart.helpers.color('#0000FF').alpha(0.5).rgbString(), 
 
     borderColor: '#0000FF', 
 
     unite: null, 
 
     yAxisID: 'consumption', 
 
     data: [{x: '2017-10-26T22:00:00.000Z', y:73.16},{x: '2017-11-27T22:00:00.000Z', y:36.16}, {x: '2017-11-28T22:00:00.000Z', y:36.16}, {x: '2017-11-29T22:00:00.000Z', y:36.16}, {x: '2017-12-27T22:00:00.000Z', y:36.16}] 
 
    },{ 
 
     label: 'datasets2', 
 
     type: 'bar', 
 
     backgroundColor: Chart.helpers.color('#FF0000').alpha(0.5).rgbString(), 
 
     borderColor: '#FF0000', 
 
     unite: null, 
 
     yAxisID: 'consumption', 
 
     data: [{x: '2017-10-26T22:00:00.000Z', y:87.16},{x: '2017-11-27T22:00:00.000Z', y:24.16}] 
 
    }], 
 
    }, 
 
    options : options   
 
});
.container { 
 
    display: flex; 
 
    height: 100%; 
 
    width: 100%; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.bundle.min.js"></script> 
 
<div class="container"> 
 
    <canvas class="line-chart"></canvas> 
 
</div>

Codepen

答えて

0

私は同じ問題がありました。値が0のデータセットに不足している日付を追加することで、希望の表示を得ることができました。

リニアな時間スケールで日が欠落しているときのバー幅の現在の動作はバグですが、これはデータがあまり疎ではないため、あまりにも悪くない回避策です。

関連する問題