[Chartjs]-Add space Between Columns in Bar chart. chartjs

1đź‘Ť

Remove this barThickness: 40, (40 in pixels). In your case “No space/room” for such width = overlaps & broken layout.

https://www.chartjs.org/docs/latest/charts/bar.html#barthickness

Basic snippet (Base on your code) (change barThickness barPercentage barPercentage):
https://www.chartjs.org/docs/latest/charts/bar.html#barpercentage-vs-categorypercentage

var canvas = document.getElementById("myChart");
var ctx = canvas.getContext("2d");

var _datesForLabel = ["2020-02-10",
                      "2020-02-13",
                      "2020-02-17",
                      "2020-02-18",
                      "2020-02-19",
                      "2020-02-20",
                      "2020-02-21",
                      "2020-02-22",
                      "2020-02-23",
                      "2020-02-24",
                      "2020-02-25",
                      "2020-02-26",
                      "2020-02-27",
                      "2020-02-28",
                      "2020-02-29",
                      "2020-03-01",
                      "2020-03-02",
                      "2020-03-03",
                      "2020-03-04",
                      "2020-03-05",
                      "2020-03-07",
                      "2020-03-08",
                      "2020-03-09",
                      "2020-03-10","2020-02-10",
                      "2020-02-13",
                      "2020-02-17",
                      "2020-02-18",
                      "2020-02-19",
                      "2020-02-20",
                      "2020-02-21",
                      "2020-02-22",
                      "2020-02-23",
                      "2020-02-24",
                      "2020-02-25",
                      "2020-02-26",
                      "2020-02-27",
                      "2020-02-28",
                      "2020-02-29",
                      "2020-03-01",
                      "2020-03-02",
                      "2020-03-03",
                      "2020-03-04",
                      "2020-03-05",
                      "2020-03-07",
                      "2020-03-08",
                      "2020-03-09",
                      "2020-03-10"]      

var _chartDataWithOptions =[];

_chartDataWithOptions.push({
  label:"dataseries1",
  data:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],
  backgroundColor:"blue"
})

_chartDataWithOptions.push({
  label:"dataseries2",
  data:[2,3,4,5,6,7,8,9,10,12,13,11,10,19,14,12,11,18,26,23,21,28,24,2,3,4,6,9,1,2,1,11,12,13,14,15,16,17,18,19,20,21,22,23,11,22,4,6,3,6],
  backgroundColor:"red"
})

var config = {
  type: 'bar',
  data: {
    labels: _datesForLabel,
    datasets: _chartDataWithOptions,
    borderSkipped: 'top'
  },
  options: {
    // responsive: true,
    tooltips: {
      // mode: ''
    },
    plugins: {
      colorschemes: {
        scheme: 'office.Waveform6'
      }
    },
    scales: {
      yAxes: [{
        ticks: {
          min: 0,
        }
      }],
      xAxes: [{
        // barThickness: 40, // number (pixels) or 'flex'
        maxBarThickness: 40,
        barPercentage: 1,/* change this */
        categoryPercentage: 0.5,/* change this */
        ticks: {
          min: 0,
        },
      }]
    }
  }
};

myBarChart = new Chart(ctx, config);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" ></script>

<div style="height: 500px; width: 100%;">
<canvas id="myChart" ></canvas>
</div>

About “set labels without rotation” – again “no room” – by maxRotation: 0, – full answer + example her: Chart Js Change Label orientation on x-Axis for Line Charts

“To much points/data” issue:
For now “no way” to auto group data – one idea is to use
stacked: true (“save room”) – or manually filter your data (Show fewer points – related StackOverflow Q: Chartjs 2 scaling lots of data points).

Leave a comment