2

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

}

4

0 回答 0