javascript - 在图表 js y 轴中显示所有值

标签 javascript html chart.js

我有以下图表: Chart

我想要在 y 轴上显示字母,因此我在图表选项中添加了一个开关,用于触发 y 轴值的适当字母。我的问题是 y 轴仅显示偶数值,因此返回开关值的一半(xc、B、A+ 等...)。但我想显示 y 轴上的所有值,从 0 到 13。有什么方法可以实现吗?非常感谢您的帮助。

var data = {
  labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
  datasets: [{
    label: "My First dataset",
    fill: false,
    lineTension: 0,
    backgroundColor: "rgba(75,192,192,0.4)",
    borderColor: "rgba(75,192,192,1)",
    borderCapStyle: 'butt',
    borderDash: [],
    borderDashOffset: 0.0,
    borderJoinStyle: 'miter',
    pointBorderColor: "rgba(75,192,192,1)",
    pointBackgroundColor: "#fff",
    pointBorderWidth: 2,
    pointHoverRadius: 5,
    pointHoverBackgroundColor: "rgba(75,192,192,1)",
    pointHoverBorderColor: "rgba(220,220,220,1)",
    pointHoverBorderWidth: 2,
    pointRadius: 1,
    pointHitRadius: 10,
    data: [0, 1, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13],
  }]
};

var options = {
  scales: {
    yAxes: [{
      ticks: {
        // Create scientific notation labels
        callback: function(value, index, values) {
          switch (value) {
            case 0:
              return 'XC';
            case 1:
              return 'C';
            case 2:
              return 'B';
            case 3:
              return 'A';
            case 4:
              return 'A+';
            case 5:
              return 'BA';
            case 6:
              return 'N+';
            case 7:
              return 'C-';
            case 8:
              return 'D+';
            case 9:
              return 'D';
            case 10:
              return 'D-';
            case 11:
              return 'N';
            case 12:
              return 'N-';
            case 13:
              return 'NR';
            default:
              return '';
              break;
          }
        }
      }
    }]
  }
};

var ctx = $('#chart');
var chart = new Chart(ctx, {
  type: 'line',
  data: data,
  options: options
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.4/Chart.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<canvas id="chart"></canvas>

最佳答案

在 ticks 对象中,您还可以提供 minmaxstepSize 来覆盖默认的自动调整行为

(更多信息可以在 docs 中查看所有可用属性)

ticks: {
    min: 0,
    max: 13,
    stepSize: 1,
    ........REST OF THE OBJECT.....

Fiddle

关于javascript - 在图表 js y 轴中显示所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716094/

相关文章:

javascript - 使用javascript查找数组中任意两对元素之间的最小绝对差时出错

javascript - 使用带有文本显示的 Jquery 切换文本

javascript - 如何从 Handlebars 模板中选择元素?

javascript - 鼠标移动时移动背景

javascript - 自己网站的视频播放器(带 youtube)

javascript - 使用 JSON 更新 Chart.js,无法读取未定义的属性 'length'

javascript - Web 应用程序中的文件夹选择器 - PrimeFaces 还是 JavaScript?

html5 css3 从文本创建音频声音

javascript - 使用 canvas2svg.js 将 chart.js 图表导出为 svg

angular - 如何在 Angular 条形图中展示进度?