我正在尝试使用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);
}