在Chart.js中将Y轴值从实数更改为整数

时间:2013-04-01 20:46:15

标签: javascript html charts chart.js

我想要使用Chart.js在我的网站中添加图表。在Y轴上,它给出了实数而不是整数。如何将数字更改为整数?

这是我现在拥有的照片:

current chart with real numbers

这是代码:

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);

6 个答案:

答案 0 :(得分:95)

我在新版本中以这种方式处理它:

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

答案 1 :(得分:52)

试试这个,其中max是数据的最高值。

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

答案 2 :(得分:37)

在使用Chart.js 的新版本2时,我无法让现有的答案为我工作,所以我发现这是解决这个问题的方法在V2:

arr_type

答案 3 :(得分:7)

查看全局配置部分中的Chart.js文档:

  

// Boolean - 即使绘图空间存在,比例是否应该坚持整数,而不是浮点数        scaleIntegersOnly:true,

答案 4 :(得分:6)

如果你想以不同于0的数字开头,你必须考虑到这一点:

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
});

答案 5 :(得分:1)

我知道这是一个老问题了,但是在当前版本(v2.9.3)中,您可以将y轴刻度的精度设置为零以获得整数:

options: {  
    scales: {
        yAxes: [{
            ticks: {
                precision: 0
            }
        }]
    }
}