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");
添加回答
举报