Chart.js如何隐藏X轴无对应数据的标签 仅从有数据的时段开始展示
你当前使用的是Chart.js默认的类目型X轴,beginAtZero是数值型坐标轴的专属配置,对类目轴不生效,所以无法达到截断前序空值标签的效果。
你可以通过X轴ticks配置项的min属性,指定X轴起始展示的标签索引,跳过前序没有数据的标签即可。
首先找到你的datasets.data数组中第一个非空值的索引:从你给出的代码来看,第一个有效值5596的位置是第20个元素(索引为19,索引从0开始计数),所以只需要在X轴的ticks配置中添加min: 19即可。
修改后的完整代码如下:
var chart1 = new Chart(document.getElementById("pga6").getContext("2d"), { type: "line", options: { responsive: true, bezierCurve: false, scales: { xAxes: [{ display: true, scaleLabel: { display: true }, ticks: { // 新增配置:指定X轴从索引为19的标签开始展示 min: 19, maxTicksLimit:5, minTicksLimit:1, fontSize:12, weight:100, maxRotation: 0, minRotation: 0 }, angleLines: { lineWidth: 1 }, gridLines: { display: false, } }] } }, data: { labels: ['01/01/2016','01/02/2016','01/01/2016','01/01/2016','01/01/2016','01/01/2016'...........'01/01/2018',], datasets: [ { label: "Participantes ativos", data: [,,,,,,,,,,,,,,,,,,,5596,5307,5046,4901,4580,4151,], fill: false, backgroundColor: 'rgba(32, 77, 155, 1)', borderColor: 'rgba(32, 77, 155, 1)', borderWidth: 2, lineTension: 0.4, } ] }, });
如果你的数据是动态生成的,不想写死索引,可以提前计算第一个非空值的位置,示例逻辑如下:
// 找到第一个非空数据的索引 const firstValidIndex = yourDataArray.findIndex(item => item != null); // 把计算得到的firstValidIndex赋值给ticks.min即可
内容的提问来源于stack exchange,提问作者Junior Barbosa
相关产品推荐
相关产品推荐

