我正在使用Chart.js 2.0版本绘制图形,我想在条形图中定义最小步长

var myNewChart = new Chart(grapharea, {
                type: 'bar',
                data: barData,
                options: {
                    responsive: true,
                    scales: {
                        yAxes: [
                            {
                                ticks: {
                                    min: 0, // it is for ignoring negative step.
                                    beginAtZero: true,
                                    stepSize: 1  // if i use this it always set it '1', which look very awkward if it have high value  e.g. '100'.
                                }
                            }
                        ]
                    }
                }
            });
这次我正在使用

我正在使用此步长来忽略点值,例如'0.5',它显示最大图形值id小于例如'2'的时间。
如果我使用它,它总是将步长设置为``1'',如果它具有很高的值,则看起来很尴尬,例如'100'。

有什么东西可以定义最小步长,在更高值(value)的情况下不应该确定。

最佳答案

如果您不想显示点值标签(例如0.5),可以编写一个回调函数来过滤点值标签,而不是使用stepSize。

像这样:

ticks: {
    min: 0, // it is for ignoring negative step.
    beginAtZero: true,
    callback: function(value, index, values) {
        if (Math.floor(value) === value) {
            return value;
        }
    }
}

在这里工作的 fiddle :https://jsfiddle.net/ma7h611L/

更新:

如下面的Atta H.Lekoaf所指出的,Chart.js在ticks中添加了precision属性。从2.7.3版开始可用。请参阅Lekoaf的answer如何使用它。

10-06 05:19