我正在尝试使用 d3 在一张图表中绘制几条线,并使用画笔功能(http://bl.ocks.org/1667367)实现
下面的部分代码将在右侧显示每一行的名称。
focudraw.select("text")
.datum(function(d){
return {name:d.name,value : d.values[d.values.length-1]};
})
.attr("transform",function(d){
return "translate("+x(d.value.date)+","+y(d.value.price)+")"
})
.text(function(d){return d.name});
但是,如果我在移动 contextdraw(在下面)时动态刷机,那么文本的位置不会改变,我也没有太多的想法可以修改。
我想我应该专注于画笔功能中的 focudraw.select("text") ,正确更改 d.values 的索引,我知道如何将new x.domain()[ 1 ] 映射到 d.values 的最后一个索引,但是位置不是那么准确...
function brush(){
x.domain(brush.empty() ? navx.domain() : brush.extent());
focudraw.select("path").attr("d",function(d){
return line(d.values);
});
focudraw.select("text")
.datum(function(d){
return {name:d.name,value : d.values[d.values.length-1]};
})
.attr("transform",function(d){
return "translate("+x(d.value.date)+","+y(d.value.price)+")"
})
.text(function(d){return d.name});
focu.select(".x.axis").call(xAxis);
}