作者:手机用户2502891053 | 来源:互联网 | 2023-02-02 10:08
我一直在寻找解决方案一段时间,但由于大量已删除的文档和以前版本的库的hacky答案,我不再接近解决方案.
我正在使用ChartJS v2创建一个图表,沿着x轴有季度月份名称,我设置了我的标签,以便只显示每个第四个标签(即每年一个).结果是这样的:
但是,我想这样,刻度线也只出现在与标签相同的每个第4个x轴入口上.这可能吗?
我当前的脚本标记如下:
这有可能实现吗?提前致谢.
1> ɢʀᴜɴᴛ..:
更换你打勾的 userCallback
用下面的函数...
userCallback: function(item, index) {
if (!(index % 4)) return item;
}
基本上,您不需要为要隐藏的标签返回任何空字符串.如果您没有返回任何内容(对于您不想要的标签),它将不会为该标签绘制任何刻度线(以及网格线).
ᴅᴇᴍᴏ
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept'],
datasets: [{
label: 'Standard Rating',
data: [1, 2, 3, 4, 5, 6, 7, 8, 9],
backgroundColor: 'rgba(209, 230, 245, 0.5)',
borderColor: 'rgba(56, 163, 236, 1)',
borderWidth: 1
}]
},
options: {
responsive: false,
tooltips: {
mode: 'label',
intersect: false
},
scales: {
xAxes: [{
ticks: {
userCallback: function(item, index) {
if (!(index % 4)) return item;
},
autoSkip: false
}
}],
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});