【发布时间】:2018-01-23 00:00:45
【问题描述】:
我在这里查看了几个答案:
但它们对我不起作用。
我有一个年份数组,例如:
years: Array<number> = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017];
let minXAxis = Math.min(...this.years);
let maxXAxis = Math.max(...this.years);
this.xScale = d3.scaleLinear().range([this.margins.left, this.width - this.margins.right]).domain([minXAxis, maxXAxis]);
this.xAxis = svg.append("g")
.attr("class", "axis axis-x")
.attr("transform", `translate(0, ${this.height - this.margins.bottom})`)
.call(d3.axisBottom(this.xScale));
这样做会给我以下结果。
然后当我像这样使用.tickFormat(d3.format("d")) 时:
this.xAxis = svg.append("g")
.attr("class", "axis axis-x")
.attr("transform", `translate(0, ${this.height - this.margins.bottom})`)
// set to only display ticks for digits
.call(d3.axisBottom(this.xScale).tickFormat(d3.format("d")));
我得到以下信息
如您所见,它去掉了小数点,但仍列为重复项,例如 2011、2011、...
如何解决此问题,使 x 轴仅显示:2010、2011、2012、...?
【问题讨论】:
标签: typescript d3.js axis axis-labels