Javascript d3 v4中的二维电刷

Javascript d3 v4中的二维电刷,javascript,node.js,d3.js,npm,Javascript,Node.js,D3.js,Npm,我在将D3V3转换为D3V4时遇到问题 我有以下代码: var brush = d3.svg.brush() .x(x) .y(y) .on("brushstart", brushstart) .on("brush", brushmove) .on("brushend", brushend); 但我不知道如何在v4中编写它 我试过了 var brush = d3.brush() .brushX(x) .b

我在将D3V3转换为D3V4时遇到问题

我有以下代码:

  var brush = d3.svg.brush()
      .x(x)
      .y(y)
      .on("brushstart", brushstart)
      .on("brush", brushmove)
      .on("brushend", brushend);
但我不知道如何在v4中编写它

我试过了

 var brush = d3.brush()
      .brushX(x)
      .brushY(y)
      .on("brushstart", brushstart)
      .on("brush", brushmove)
      .on("brushend", brushend); 
但它不起作用


注意:我正在使用软件包npm:“d3笔刷”:“^1.0.4”,这是正确的行为。阅读,你会注意到,
d3.brush()
本身就可以创建二维画笔:

d3.刷子()

创建新的二维笔刷

因此,在创建的笔刷上没有方法
brush.brushX()
brush.brushY()
。这些方法将创建一个一维笔刷

因此,您的代码最终将如下所示:

var brush = d3.brush()
  .on("start", brushstart)
  .on("brush", brushmove)
  .on("end", brushend); 

这是正确的行为。阅读,你会注意到,
d3.brush()
本身就可以创建二维画笔:

d3.刷子()

创建新的二维笔刷

因此,在创建的笔刷上没有方法
brush.brushX()
brush.brushY()
。这些方法将创建一个一维笔刷

因此,您的代码最终将如下所示:

var brush = d3.brush()
  .on("start", brushstart)
  .on("brush", brushmove)
  .on("end", brushend); 

但是我如何定义画笔中的比例(x,y:scaleLinear);(我尝试了您的解决方案,但收到了未捕获的错误:未知类型:brushstart)@MrGildarts笔刷的处理已从v3更改为v4。新版本的笔刷不再依赖于比例(有关详细信息,请参见)。至于未知类型错误:看看我最近的编辑!事件类型的名称也已更改:
“brushstart”
↦ <代码>“开始”,
“刷头”
↦ <代码>“结束”。如果您对这些问题有任何问题,我建议您发布一个新问题。thnx,但我不确定它是否有效,这次我收到了错误d3。js:4100 Uncaught TypeError:无法读取undefined的属性'baseVal',他有一个带有cell.call(画笔)的pb;instruction@MrGildarts正如我所说,这些都是后续问题,应该作为另一个问题发布。在这样做时,请提供一个例子来说明您的问题,以便其他人能够提供帮助。但是我如何定义画笔中的刻度(x,y:scaleLinear);(我尝试了您的解决方案,但收到了未捕获的错误:未知类型:brushstart)@MrGildarts笔刷的处理已从v3更改为v4。新版本的笔刷不再依赖于比例(有关详细信息,请参见)。至于未知类型错误:看看我最近的编辑!事件类型的名称也已更改:
“brushstart”
↦ <代码>“开始”,
“刷头”
↦ <代码>“结束”。如果您对这些问题有任何问题,我建议您发布一个新问题。thnx,但我不确定它是否有效,这次我收到了错误d3。js:4100 Uncaught TypeError:无法读取undefined的属性'baseVal',他有一个带有cell.call(画笔)的pb;instruction@MrGildarts正如我所说,这些都是后续问题,应该作为另一个问题发布。在这样做的时候,请提供一个例子来说明您的问题,以便其他人能够提供帮助。