Я использую процентное значение для startOffset в textPath. Путь представляет собой нормальную кривую. В зависимости от размера окна мой текст отображается в разных процентилях при нормальном распределении. Я смущен, потому что процентные значения обычно чувствительны. Как я могу заставить текст последовательно начинаться с процентиля x?
textPath, который я использую, представляет собой нормальную кривую, полученную путем построения данных из обычного образца и использования этого для построения кривой
let curve = d3.line().curve(d3.curveBasis)
.x( (d) => scale_x(d[0]) )
.y( (d) => scale_y(d[1]) );
Когда я устанавливаю текстовый элемент, он успешно изгибается по пути. Однако, в зависимости от размера моего окна, когда я вызываю функцию, startOffset помещает текст в другую часть кривой.
d3.select("#svg1").select("#normal_g").append('text')
.attr("text-anchor", "middle").attr("x", scale_x(mu))
.attr("y",(d,i)=>dim.y+dim.height *.65)
d3.select("#svg1").select("#normal_g").select('text')
.append("textPath").text("Normal Distribution")
.attr("href", "#normal") // #normal is a normal curve
.attr("startOffset" , "50%") //<---This is the attribute that I'm confused by