D3.js 如何获取D3轴的路径字符串

D3.js 如何获取D3轴的路径字符串,d3.js,D3.js,是否有一种有效的方法可以从轴生成器函数(如下图)获取D3中生成的轴的路径字符串,因为我需要获取稍后添加到图表中的路径的交点,该路径将X轴平分 var xScale = d3.scaleLinear().domain([0,10]).range([0,width]); var xAxis = g.append("g") .attr("class","x-axis-right") .attr("transform", `translate(0, ${height})`) .style("fill"

是否有一种有效的方法可以从轴生成器函数(如下图)获取D3中生成的轴的路径字符串,因为我需要获取稍后添加到图表中的路径的交点,该路径将X轴平分

var xScale = d3.scaleLinear().domain([0,10]).range([0,width]);

var xAxis = g.append("g")
.attr("class","x-axis-right")
.attr("transform", `translate(0, ${height})`)
.style("fill","blue")
.style("stroke","none")

var xAxisCall = d3.axisBottom(xScale);

xAxis.transition(t).call(xAxisCall);

我觉得这没什么意义,为什么要使用
d
属性,但无论如何,这是如何做到的:

在D3中,getter几乎是没有第二个参数的方法。因此,如果这设置了
d
属性

selection.attr("d", foo);
。。。这就是:

selection.attr("d");
因此,您只需选择所需的路径,在您的情况下,该路径为:

xAxis.select("path").attr("d");
这是演示,请看控制台:

var宽度=500,
高度=100;
var svg=d3.选择(“svg”);
var xScale=d3.scaleLinear().domain([0,10]).range([10,width-10]);
var xAxis=svg.append(“g”)
.attr(“类”,“x轴-右”)
.attr(“transform”,`translate(0,${height-30})`)
.style(“填充”、“蓝色”)
.style(“笔划”、“无”)
var xAxisCall=d3.axisBottom(xScale);
xAxis.call(xAxisCall);
var pathString=xAxis.select(“path”).attr(“d”);
console.log(路径字符串)

您所说的“轴的路径字符串”是什么意思?正如在“d”属性中,thta是绘制轴的路径thta的svg字符串