2013-04-01 55 views
40

我有一个图表,我想包括在我的网站使用Chart.js。在Y轴它给我的实数不是整数,这就是我想要的,这里是什么,我现在有一个画面:如何将实数的Y轴值更改为chartjs中的整数?

enter image description here

这就是代码:

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

需要这个,你解决了吗? – Mewel

回答

51

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

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

非常感谢,它的工作! –

+0

是的,它的工作原理! – RolandoCC

+0

@Mewel我不希望Y轴标签完全显示。我怎么能这样做?必须有一个选项权利。 –

5

如果您喜欢在不同的数量大于零开始,你必须考虑到这一点:

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

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

//布尔值 - 量表是否应该保持整数,即使有绘图空间也不会浮动 scaleIntegersOnly:true,

希望它有帮助。

+0

这似乎不适用于我 – jcuenod

+0

如果它不起作用,您可能没有'scaleOverride:true'。 – Gavin

+0

大概图表版本1,这是过时 – John

29

我是不是能够得到现有的答案使用chart.js之的新版本2时为我工作,所以这里是我的发现,解决在V2这个问题:

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

请注意,这将显示您的y轴的所有整数。如果您的图表从0到300运行,则会显示所有301个整数和网格线。 – apfz

+0

@apfz非常真实的,只有当你对数据的规模有一个好的概念,并且可以事先计算出一个合理的步长时,这才会起作用。 – DBS

59

我以新版本的方式处理它:

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

非常感谢!像魅力一样工作。我想知道为什么这不是最好的答案。 –

+2

这应该是被接受的答案 – John

相关问题