71

我有一个图表,我想使用Chart.js将其包含在我的网站中。在 Y 轴上,它给了我实数而不是整数。如何将数字更改为整数?

这是我现在拥有的图片:

当前图表与实数

这是代码:

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

7 回答 7

149

我在新版本中是这样处理的:

new Chart(ctx, {
  type: 'bar',
  data: chartData,
  options: {
    scales: {
      yAxes: [{
        ticks: {
          beginAtZero: true,
          callback: function(value) {if (value % 1 === 0) {return value;}}
        }
      }]
    }
  }
});
于 2016-08-14T18:57:50.837 回答
54

使用Chart.js的新版本 2 时,我无法获得适合我的现有答案,因此这是我发现在 V2 中解决此问题的方法:

new Chart(ctx, {type: 'bar', data: barChartData,
  options:{ 
    scales: {
      yAxes: [{
        ticks: {
          stepSize: 1
        }
      }]
    }
  }
});
于 2016-06-19T10:32:52.057 回答
52

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

var steps = 3;
new Chart(ctx).Bar(plotData, {
    scaleOverride: true,
    scaleSteps: steps,
    scaleStepWidth: Math.ceil(max / steps),
    scaleStartValue: 0
});
于 2013-05-12T15:04:20.777 回答
32

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

options: {  
    scales: {
        yAxes: [{
            ticks: {
                precision: 0
            }
        }]
    }
}
于 2019-12-06T23:37:01.780 回答
9

检查Chart.js文档,在全局配置部分:

// Boolean - 刻度是否应该坚持整数,即使有绘图空间也不浮动 scaleIntegersOnly: true,

于 2015-03-04T18:39:24.783 回答
7

如果你想从一个不同于零的数字开始,你必须考虑到这一点:

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
});
于 2014-09-15T09:53:04.943 回答
0

正如上面提到的 Ben Bloodworth 所说,更简单的方法是添加选项(精度:0)。

目前在 3.7.1 版本中运行良好

 options: {
            scales: {
                y: {
                    ticks: {
                        precision: 0
                    }
                }
            }
        }
于 2022-02-23T15:16:56.403 回答