Javascript 根据笔刷选择自动调整d3.js图表y比例

Javascript 根据笔刷选择自动调整d3.js图表y比例,javascript,d3.js,Javascript,D3.js,我使用的是d3.jsv4 是否有更方便的方法来查找笔刷选择的最小值和最大值。这意味着当我在下面的笔刷区域中选择一个周期时,可以调整y轴的大小 这是我的方法(使用画笔时调用的函数中的所有内容): 我发现我的选择范围有限 extent = d3.event.selection.map(chartComponent.x2().invert)) 然后,我必须重做一个包含所有选定点的数组:我对每个点进行比较,并将其与区段[0]或区段[1]进行比较,以查看其是否在限制范围内。我存储起点和终点索引,然后

我使用的是d3.jsv4

是否有更方便的方法来查找笔刷选择的最小值和最大值。这意味着当我在下面的笔刷区域中选择一个周期时,可以调整y轴的大小

这是我的方法(使用画笔时调用的函数中的所有内容):

  • 我发现我的选择范围有限

    extent = d3.event.selection.map(chartComponent.x2().invert))
    
  • 然后,我必须重做一个包含所有选定点的数组:我对每个点进行比较,并将其与区段[0]或区段[1]进行比较,以查看其是否在限制范围内。我存储起点和终点索引,然后在原始数据上使用data.slice(begin,end)来获得一个新数组

  • 然后在新数组上应用d3.min和d3.max以查找最小和最大级别

  • 然后设置y轴以使用这些限制

    chart.y().domain([chartComponent.ymin, chartComponent.ymax]);
    chart.yaxisGraph.call(chartComponent.yAxis(true));
    

有人有更好的想法吗?

答案是否定的,我已经实施了我的解决方案。此解决方案具有可接受的性能,因此我将坚持使用它。如果你有更好的想法,请随意留言或回答,我仍在寻找更好的。