ChartJS:如何设置Y轴的最大值和最小值

我正在使用来自http://www.chartjs.org/的折线图 在这里输入图像说明

正如你所看到的Y轴的最大值(130)和最小值(60)是自动select的,我想最大值= 500,最小值= 0。 这可能吗?

你必须重写规模,试试这个:

window.onload = function(){ var ctx = document.getElementById("canvas").getContext("2d"); window.myLine = new Chart(ctx).Line(lineChartData, { scaleOverride : true, scaleSteps : 10, scaleStepWidth : 50, scaleStartValue : 0 }); } 

对于chart.js V2(testing版),请使用:

 var options = { scales: { yAxes: [{ display: true, ticks: { suggestedMin: 0, // minimum will be 0, unless there is a lower value. // OR // beginAtZero: true // minimum value will be 0. } }] } }; 

有关更多详细信息,请参阅chart.js文档 。

 var config = { type: 'line', data: { labels: ["January", "February", "March", "April", "May", "June", "July"], datasets: [{ label: "My First dataset", data: [10, 80, 56, 60, 6, 45, 15], fill: false, backgroundColor: "#eebcde ", borderColor: "#eebcde", borderCapStyle: 'butt', borderDash: [5, 5], }] }, options: { responsive: true, legend: { position: 'bottom', }, hover: { mode: 'label' }, scales: { xAxes: [{ display: true, scaleLabel: { display: true, labelString: 'Month' } }], yAxes: [{ display: true, ticks: { beginAtZero: true, steps: 10, stepValue: 5, max: 100 } }] }, title: { display: true, text: 'Chart.js Line Chart - Legend' } } }; var ctx = document.getElementById("canvas").getContext("2d"); new Chart(ctx, config); 
 <script src="ajax/libs/Chart.js/2.2.1/Chart.bundle.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <canvas id="canvas"></canvas> </body> 

上面的答案对我来说不起作用。 可能的选项名称自11年以来已经改变了,但是下面这些对我来说是个窍门:

 ChartJsProvider.setOptions scaleBeginAtZero: true 

ChartJS v2.4.0

如2017年2月7日https://github.com/jtblin/angular-chart.js上的示例所示(因为这似乎经常发生变化):;

 var options = { yAxes: [{ ticks: { min: 0, max: 100, stepSize: 20 } }] } 

这将导致5个y轴值如下:

 100 80 60 40 20 0 
 window.onload = function(){ var ctx = document.getElementById("canvas").getContext("2d"); window.myLine = new Chart(ctx ,{ type: 'line', data: yourData, options: { scales: { yAxes: [{ ticks: { beginAtZero:true, min: 0, max: 500 } }] } } }); 

我在v2中使用“选项”进行configuration。

您应该阅读文档: http : //www.chartjs.org/docs/#scales-linear-scale

只需在选项中设置scaleStartValue的值即可

 var options = { // .... scaleStartValue: 0, } 

请参阅此处的文档。

 yAxes: [{ display: true, ticks: { beginAtZero: true, steps:10, stepValue:5, max:100 } }] 

这是为Charts.js 2.0:

其中一些不起作用的原因是因为您应该在创build图表时声明您的选项,如下所示:

 $(function () { var ctxLine = document.getElementById("myLineChart"); var myLineChart = new Chart(ctxLine, { type: 'line', data: dataLine, options: { scales: { yAxes: [{ ticks: { min: 0, beginAtZero: true } }] } } }); }) 

这里的文档在这里: http : //www.chartjs.org/docs/#scales

在2016年写这个,而Chart js 2.3.0是最新的一个。 这是如何改变它

  var options = { scales: { yAxes: [{ display: true, stacked: true, ticks: { min: // minimum value max: // maximum value } }] } }; 

在1.1.1中,我使用下面的方法来修正0.0和1.0之间的比例:

 var options = { scaleOverride: true, scaleStartValue: 0, scaleSteps: 10, scaleStepWidth: 0.1 } 

由于以上的build议没有任何帮助我与charts.js 2.1.4,我解决了它的值0添加到我的数据集数组(但没有额外的标签):

 statsData.push(0); [...] var myChart = new Chart(ctx, { type: 'horizontalBar', data: { datasets: [{ data: statsData, [...] 

我在我的多个项目中使用了旧版本的Flat Lab模板,这些模板使用了我不确定的chart.js的v1.x.我无法更新到v2.x,因为我已经有了多个项目。 上面提到的(bardata,options)不适合我。

所以这里是版本1.x的破解

 calculatedScale = calculateScale(scaleHeight,valueBounds.maxSteps,valueBounds.minSteps,valueBounds.maxValue,valueBounds.minValue,labelTemplateString); 

将其replace为:

 calculatedScale = calculateScale(scaleHeight,valueBounds.maxSteps,1,valueBounds.maxValue,0,labelTemplateString);