D3.js 将yAxis设置为D3js

D3.js 将yAxis设置为D3js,d3.js,D3.js,我在D3js中有一个时间序列图,我正在设置yScale setYScale() { this.yScale = d3 .scaleBand() .range([this.gHeight, 0]) .domain(this.yData) //this is array [0,1,2,3,4,5....23] .padding(0.06); }, 这为我在左侧设置了刻度,从0到23(24小时),我想要实现的是,我不想让它按

我在D3js中有一个时间序列图,我正在设置yScale

setYScale() {
      this.yScale = d3
        .scaleBand()
        .range([this.gHeight, 0])
        .domain(this.yData) //this is array [0,1,2,3,4,5....23]
        .padding(0.06);
},

这为我在左侧设置了刻度,从0到23(24小时),我想要实现的是,我不想让它按顺序从0,1,2,3,4…刻度,我希望有0,2,4,6,8(偶数),其余的应该工作,因为它只是刻度,我希望它是偶数。有人能帮我吗。

你的代码就是刻度,假设你有一个轴叫做
axis
,试试:

axis.tickFormat(function(d) { return (+d)%2 ? '' : d })

您可以发布整个代码示例吗?this.yAxisElement.call((g)=>g.call(d3.axisLeft(this.yScale).tickSize(0).tickPadding(8).tickValues(this.yScale.domain().filter(el=>el%2==0)).tickFormat(函数(d){return(+d)%2?'':d});这不起作用