如何在chart.js上配置我的y轴?

时间:2016-05-17 21:31:54

标签: charts chart.js

我正在尝试构建图表。

我的y轴在这里以0开头,我不知道如何配置它以及它为什么说话0 - 我看到其他帖子提到了scaleOverride:true,scaleStartValue:0.1,scaleStepWidth:5 - 我不知道如何使用在我的下面的代码中,如何在chart.js中配置y轴。

任何指针都是

我有以下代码

var barChartData = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [{
        label: 'Dataset 1',
        backgroundColor: "rgba(220,220,220,0.5)",
        data: [6, 6, 6, 8, 6, 9, 8]
    }]
};
function barChart() {
    var context = document.getElementById('stacked').getContext('2d');
    var myBar = new Chart(context, {
        type: 'bar',
        data: barChartData,
        options: {
            title:{
                display:true,
                text:"Chart.js Bar Chart - Stacked"
            },
            tooltips: {
                mode: 'label'
            },
            responsive: true,
            scales: {
                xAxes: [{
                    stacked: true,
                }],
                yAxes: [{
                    stacked: true
                }]
            }
        }
    });
};
$(document).ready(function() {
    $(document).ready(barChart);
});

2 个答案:

答案 0 :(得分:13)

谢谢大家的帮助,我发现chart.js会根据您的数据自动获取y轴的值,您可以在选项>下更改y / x轴设置。比例,我还需要改变y轴的步长并摆脱x轴网格线,“ticks”是我正在寻找的东西,这是我的示例代码和实现所有这些的步骤。

步骤1)Canvas这是占位符,您的图表将显示在JSP

<canvas width="1393px;" height="500px;" id="stacked"></canvas>

步骤2)创建样本数据集(这是您需要根据您的要求创建的JSON,但请确保您提供与下面给出的完全相同的格式化JSON响应以及您的数据。

var barChartData = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
    label: 'Dataset 1',
    backgroundColor: "red",
    data: [9, 6, 6, 8, 6, 9, 8]
},
{
    label: 'Dataset 1',
        backgroundColor: "rgba(225,226,228,0.5)",
        data: [9, 6, 6, 8, 6, 9, 8]
    }]
};

or you can call JSON from controller inside script as below

var jsonArry = <%=request.getAttribute("jsonArry")%>;

步骤3)调用您在步骤2中创建的JSON

  function barChart(){
          var context = document.getElementById('stacked').getContext('2d');
          var myBar = new Chart(context, {
          type: 'bar',
          data: jsonArry,

  options: {
         tooltips: {
          mode: 'label'
      },
      responsive: true,
      scales: {
          xAxes: [{
              ticks:{
                  stepSize : 10,

              },
              stacked: true,
            gridLines: {
                    lineWidth: 0,
                    color: "rgba(255,255,255,0)"
                }
          }],
          yAxes: [{

              stacked: true,
               ticks: {
                  min: 0,
                  stepSize: 1,
              }

          }]
      }
      }
  });

};

希望这会有所帮助,作为参考,我使用了以下文档Chart JS

感谢。

答案 1 :(得分:2)

只需删除stacked选项,它将从0开始停止(除非您的数据从0开始)。

相关小提琴 - http://jsfiddle.net/rsyk9he0/

对于堆积图表,Chart.js为每个堆栈(bar)构建正负和的列表,然后使用它来计算出最小值和最大值。如果没有负值,则负和列表是0的列表。这会迫使刻度min为0。

scaleStartValue,scaleStepWidth等是Chart.js的v1.x中的选项。您正在使用v2.x.有关2.x等效项,请参阅How to make integer scale in Chartjs