Chart.js自动选择比例值

时间:2017-08-04 07:13:10

标签: javascript chart.js

我正在使用自动缩放起始值。它将自动生成并选择y轴中的最小和最大数字。现在我面临着问题,比例从最小数字开始,将完全从最大数字开始。我可以将比例设置为在最小数字之前开始,如值的2%吗?这是我的图表:enter image description here

我只是想注意我有随机值,所以我无法调整比例来开始和结束某些值! 感谢

2 个答案:

答案 0 :(得分:3)

您可以使用y轴刻度的 min max 属性设置最小值(开始)和最大(结束)比例值。

scales: {
   yAxes: [{
      ticks: {
         min: Math.min.apply(this, data_array) - 5,
         max: Math.max.apply(this, data_array) + 5
      }
   }]
}

<强>ᴅᴇᴍᴏ

var data_array = [20, 22, 24, 28, 30];

var chart = new Chart(ctx, {
   type: 'bar',
   data: {
      labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
      datasets: [{
         label: 'BAR',
         data: data_array,
         backgroundColor: 'rgba(0, 119, 290, 0.5)',
         borderColor: 'rgba(0, 119, 290, 0.6)'
      }]
   },
   options: {
      scales: {
         yAxes: [{
            ticks: {
               min: Math.min.apply(this, data_array) - 5,
               max: Math.max.apply(this, data_array) + 5,
               stepSize: 5
            }
         }]
      }
   }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js"></script>
<canvas id="ctx"></canvas>

答案 1 :(得分:0)

添加到 GRUNT 答案中。

function round(x) { 
    return Math.ceil(x / 5) * 5; 
}

min: round(Math.min.apply(this, data_array) - 5),
max: round(Math.max.apply(this, data_array) + 5),

如果您的 stepSize 为 5,这将使图表更漂亮。