我有以下图表: 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>
答案 0 :(得分:6)
在刻度线对象中,您还可以提供min
,max
和stepSize
来覆盖默认的自动调整行为
(可以在所有可用属性的docs中看到更多信息)
ticks: {
min: 0,
max: 13,
stepSize: 1,
........REST OF THE OBJECT.....
答案 1 :(得分:0)
如果有人遇到类似的问题,但是彼此之间的步距不大于1(或其他具有相同除数的数字),则意味着上述解决方案将不起作用-这是我的解决方案。 只需返回chart.option.scales.yAxes
中“ afterBuildTicks”回调中的所有刻度 chart.options.scales = {
yAxes: [{
ticks,
afterBuildTicks: (scale, yTicks) => yourTicks
}]
};