简体   繁体   中英

How to remove the unnecessary overlaying gridlines using Chart.js?

I have drawn a chart using Chartjs. I can explain the pixels I want to remove, but I think an image makes it a lot clearer:

在此处输入图片说明

Underneath is the code which generates this graph:

var options = {
    type: 'bar',
    data: {
        labels: ["1", "2", "3", "4", "5"],
        datasets: [
            {
                borderWidth: 2,
                borderColor: "#5d5d5d",
                pointBorderColor: "#5d5d5d",
                pointBackgroundColor: "#5d5d5d",
                pointBorderWidth: 5,
                type: 'line',
                data: [26, 26, 33, 28, 30],
                fill: false,
                lineTension: 0
            },
            {
                borderWidth: 3,
                pointBorderColor: "#b8b8b8",
                pointBackgroundColor: "#b8b8b8",
                pointBorderWidth: 10,
                type: 'line',
                data: [26, 26, 29, 28, 29],
                fill: false,
                lineTension: 0
            },
            {
                data: [0, 0, 0, 0, 0],
                fill: false,
                lineTension: 0
            }
        ]
    },
    options: {
        hover: {mode: null},
        legend: {
            display: false
        },
        tooltips: {enabled: false},
        hover: {mode: null},
        scales: {
            xAxes: [{
                gridLines: {
                    // drawBorder: false,
                },
            }],
            yAxes: [{
                display: false,
                ticks: {
                    suggestedMin: 0,
                    max: 60,
                    beginAtZero: true
                }
            }]
        }
    }
}

var ctx = document.getElementById(elementID).getContext('2d');
new Chart(ctx, options);

Does anybody know how I can remove those unnecessary overlaying lines using Chart.js?

You can use the following chart plugin to remove those unnecessary overlaying lines :

Chart.plugins.register({
   beforeDraw: function(chart) {
      var ctx = chart.chart.ctx,
         x_axis = chart.scales['x-axis-0'],
         topY = chart.scales['y-axis-0'].top,
         bottomY = chart.scales['y-axis-0'].bottom;
      x_axis.options.gridLines.display = false;
      x_axis.ticks.forEach(function(label, index) {
         var x = x_axis.getPixelForValue(label);
         ctx.save();
         ctx.beginPath();
         ctx.moveTo(x, topY);
         ctx.lineTo(x, bottomY);
         ctx.lineWidth = 1;
         ctx.strokeStyle = x_axis.options.gridLines.color;
         ctx.stroke();
         ctx.restore();
      });
   }
});

ᴡᴏʀᴋɪɴɢ ᴅᴇᴍᴏ ⧩

 Chart.plugins.register({ beforeDraw: function(chart) { var ctx = chart.chart.ctx, x_axis = chart.scales['x-axis-0'], topY = chart.scales['y-axis-0'].top, bottomY = chart.scales['y-axis-0'].bottom; x_axis.options.gridLines.display = false; x_axis.ticks.forEach(function(label, index) { var x = x_axis.getPixelForValue(label); ctx.save(); ctx.beginPath(); ctx.moveTo(x, topY); ctx.lineTo(x, bottomY); ctx.lineWidth = 1; ctx.strokeStyle = x_axis.options.gridLines.color; ctx.stroke(); ctx.restore(); }); } }); var options = { type: 'bar', data: { labels: ["1", "2", "3", "4", "5"], datasets: [{ borderWidth: 2, borderColor: "#5d5d5d", pointBorderColor: "#5d5d5d", pointBackgroundColor: "#5d5d5d", pointBorderWidth: 5, type: 'line', data: [26, 26, 33, 28, 30], fill: false, lineTension: 0 }, { borderWidth: 3, pointBorderColor: "#b8b8b8", pointBackgroundColor: "#b8b8b8", pointBorderWidth: 10, type: 'line', data: [26, 26, 29, 28, 29], fill: false, lineTension: 0 }, { data: [0, 0, 0, 0, 0], fill: false, lineTension: 0 }] }, options: { hover: { mode: null }, legend: { display: false }, tooltips: { enabled: false }, hover: { mode: null }, scales: { xAxes: [{ gridLines: { // drawBorder: false, }, }], yAxes: [{ display: false, ticks: { suggestedMin: 0, max: 60, beginAtZero: true } }] } } } var ctx = document.getElementById('canvas').getContext('2d'); new Chart(ctx, options); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js"></script> <canvas id="canvas"></canvas> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM