web-dev-qa-db-fra.com

Modifiez les valeurs de l'axe Y des nombres réels en nombres entiers dans Chart.js

J'ai un graphique que je souhaite inclure dans mon site Web en utilisant Chart.js . Dans l'axe Y, cela me donne des nombres réels au lieu d'entiers. Comment puis-je changer le nombre en entiers?

Voici une photo de ce que j'ai maintenant:

current chart with real numbers

Et voici le code:

var lineChartData = {

    labels : ["2013/04/01","2013/03/31", "2013/03/30", "2013/03/29", "2013/03/28","2013/03/27", "2013/03/26"],

    datasets : [
        {
            fillColor : "rgba(151,187,205,0.5)",
            strokeColor : "rgba(151,187,205,1)",
            pointColor : "rgba(151,187,205,1)",
            pointStrokeColor : "#fff",
            data : ["0", "2","1", "0", "1","0","1"]
        }
    ]

}

var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Bar(lineChartData);
51
Rachid Oussanaa

Essayez ceci, où max est la valeur la plus élevée de vos données.

var steps = 3;
new Chart(ctx).Bar(plotData, {
    scaleOverride: true,
    scaleSteps: steps,
    scaleStepWidth: Math.ceil(max / steps),
    scaleStartValue: 0
});
52
Mewel

Je l'ai géré de cette façon dans une nouvelle version:

new Chart(ctx, {
  type: 'bar',
  data: chartData,
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true,
          callback: function(value) {if (value % 1 === 0) {return value;}}
        }
      }]
    }
  }
});
99
Saeed

Je n'ai pas pu obtenir les réponses existantes pour moi lors de l'utilisation de la nouvelle version 2 de Chart.js, voici donc ce que j'ai trouvé pour résoudre ce problème dans la V2:

new Chart(ctx, {type: 'bar', data: barChartData,
  options:{ 
    scales: {
      yAxes: [{
        ticks: {
          stepSize: 1
        }
      }]
    }
  }
});
39
DBS

Consultez la documentation Chart.js , dans la section Configuration globale:

// Boolean - Indique si l'échelle doit rester fidèle aux nombres entiers, pas flottante même si l'espace de dessin est là scaleIntegersOnly: true,

8
Raúl Otaño

Si vous souhaitez commencer avec un nombre différent de zéro, vous devez en tenir compte:

var step  = 5;
var max   = 90
var start = 40;
new Chart(income).Bar(barData, {
    scaleOverride: true,
    scaleSteps: Math.ceil((max-start)/step),
    scaleStepWidth: step,
    scaleStartValue: start
});
7
MRodrigues