2 回答

TA貢獻2011條經驗 獲得超2個贊
我像這樣繪制我的 y 軸:
drawYAxis(g: d3.Selection<SVGElement, {}, null, undefined> = this.yAxis) {
g.selectAll(".label").remove();
return g.call(
d3.axisLeft(this.y)
.ticks(getTickFrequency(this.axes[1].format, this.y.domain()))
.tickSizeInner(this.x.range()[0] - this.x.range()[1])
.tickSizeOuter(0)
.tickFormat(Formatter.short(this.axes[1].format)))
.call(g => g.select(".tick:last-of-type text")
.clone()
.classed("label", true)
.attr("x", 5 - this.margin.left)
.text(this.axes[1].label));
}
所以我像你一樣繪制我的 y 軸,使用d3.axisLeft一些額外的選項,然后我用 class選擇text附加到最后一個,并復制元素及其樣式等。然后我將它向左移動一點,給它是一個不同的類,并將文本設置為預定義的標簽。<g>tick
像這樣的事情應該有效。請記住,您可以添加不同的類并更改定位以更好地滿足您的需求
this.g
.append("g")
.call(d3Axis.axisLeft(this.y).ticks(4))
.select(".tick:last-of-type")
.append("text")
.text("My axis label");
添加回答
舉報