Removing vertical gridlines and preventing height resizing

Issue

I have two questions about using Chart.js.

  1. Is there any way to remove the vertical gridlines. I don’t think they serve any purpose in my bar charts, and it looks a little cleaner without them.

  2. When the charts resize, is there any way to have them retain their original height? They seem to maintain their width/height ratio. I think I’d like to keep the height from changing.

Solution

You can disable the vertical lines display using x: { grid: { display: false and you can fix the height by adding maintainAspectRatio: false,. You didn’t provide your chart so hopefully the starter one works for this example.

const ctx = document.getElementById('myChart');
const myChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
    datasets: [{
      label: '# of Votes',
      data: [12, 19, 3, 5, 2, 3],
      backgroundColor: [
        'rgba(255, 99, 132, 0.2)',
        'rgba(54, 162, 235, 0.2)',
        'rgba(255, 206, 86, 0.2)',
        'rgba(75, 192, 192, 0.2)',
        'rgba(153, 102, 255, 0.2)',
        'rgba(255, 159, 64, 0.2)'
      ],
      borderColor: [
        'rgba(255, 99, 132, 1)',
        'rgba(54, 162, 235, 1)',
        'rgba(255, 206, 86, 1)',
        'rgba(75, 192, 192, 1)',
        'rgba(153, 102, 255, 1)',
        'rgba(255, 159, 64, 1)'
      ],
      borderWidth: 1
    }]
  },
  options: {
    maintainAspectRatio: false,
    scales: {
      x: {
        grid: {
          display: false
        }
      },
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.8.0/chart.min.js" integrity="sha512-sW/w8s4RWTdFFSduOTGtk4isV1+190E/GghVffMA9XczdJ2MDzSzLEubKAs5h0wzgSJOQTRYyaz73L3d6RtJSg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<canvas id="myChart" width="400" height="400"></canvas>

Answered By – AStombaugh

Answer Checked By – Pedro (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.