Chart.js Js-仅显示特定(固定)X轴标签

Chart.js Js-仅显示特定(固定)X轴标签,chart.js,Chart.js,我需要创建一个Chart.js,默认情况下只显示X轴上的标签0、0.1、0.2、0.3、0.4和0.5。如果需要绘制值0.013,则该值应介于0和0.1之间,但不显示其特定标签。值0.389也一样,需要在0.3和0.4之间显示,行为相同。 当前我的图形显示如下: 期望的结果如下所示: 注意:即使某些“区域”没有值,也应显示标签0、0.1、0.2、0.3、0.4和0.5。 我尝试了不同的选择,我发现“最好”的方法是控制要显示的标签数量,但这不是我想要的: config = {

我需要创建一个Chart.js,默认情况下只显示X轴上的标签0、0.1、0.2、0.3、0.4和0.5。如果需要绘制值0.013,则该值应介于0和0.1之间,但不显示其特定标签。值0.389也一样,需要在0.3和0.4之间显示,行为相同。 当前我的图形显示如下:

期望的结果如下所示:

注意:即使某些“区域”没有值,也应显示标签0、0.1、0.2、0.3、0.4和0.5。 我尝试了不同的选择,我发现“最好”的方法是控制要显示的标签数量,但这不是我想要的:

config = {
        type: 'bar',
        data: {
            labels: [],
            datasets: [{
                data: [],
                borderWidth: 2,
                borderColor:'#E16972',
                fill: false
            }]
        },
        options: {
            responsive: true,
            tooltips: {
                enabled: false
            },
            title: {
                display: false
            },
            legend: {
                display: false
            },
            elements: {
                point:{
                    radius: 0
                }
            },
            scales: {
                yAxes: [{
                    display: true,
                    scaleLabel: {
                        display: true,
                        labelString: 'psd'
                    },
                    /*ticks: {
                         max: 2,
                         min: 0,
                        stepSize: 0.2
                    },*/
                    ticks: {
                        beginAtZero: true
                    }
                }],
                xAxes: [{
                    display: true,
                    scaleLabel: {
                        display: false,
                        labelString: 'frequency'
                    },
                    ticks: {
                        callback: function(dataLabel, index) {
                            // Hide the label of every 2nd dataset. return null to hide the grid line too
                            return index % 2 === 0 ? dataLabel : '';
                        }
                    }
                }]
            }
        }
      }

不幸的是,您的示例代码没有显示任何数据,所以我不得不假设它可能是什么样子

在垂直条形图中,单个条形图均匀分布在x轴上的可用空间中。因此,x轴(标签)的值在您的情况下并不重要,它们的数量只需与数据值的数量匹配即可

然而,数据值的数量很重要,它必须符合线性比例。因此,在下面的可运行代码段中,我提供了15个值(其中一些值为零),并且每个0.1宽度的部分都有3个值

const data=[0,0.0003,0.0008,0.00025,0.0012,0.0018,0,0.00078,0.00034,0,0,0,0,0,0];
var canvas=document.getElementById('myChart');
新图表(画布{
类型:'bar',
数据:{
标签:data.map(v=>x'),
数据集:[{
数据:数据,
边界宽度:2,
边框颜色:'#E16972',
填充:假
}]
},
选项:{
回答:是的,
工具提示:{
已启用:false
},
标题:{
显示:假
},
图例:{
显示:假
},
比例:{
雅克斯:[{
scaleLabel:{
显示:对,
标签字符串:“psd”
},
滴答声:{
贝吉纳泽罗:是的,
步长:0.001
}
}],
xAxes:[{
显示:假
},
{
scaleLabel:{
显示:对,
标签字符串:“频率”
},
类型:'线性',
滴答声:{
最高:0.5,
步长:0.1
}
}
]
}
}
});


有没有办法只显示X值0、0.1、0.3和0.5?@Alan Gularte:请为这期新杂志发布一个新问题