javascript - D3 Zoom 重置通过刷选选择的比例。

标签 javascript d3.js zooming

我已经使缩放和刷涂一起工作。唯一的问题是,当我通过刷牙设置 X 轴上的特定周期,然后尝试使用缩放(通过鼠标拖动或鼠标滚轮)时,它会重置以前选定的比例,因此缩放不会存储以前的 x 轴域之前通过刷牙设置。

zoomRight = d3.behavior.zoom()
  .x(xScale)
  .y(yRightScale)
  .scaleExtent([1,20])

zoomed = ->
  zoomRight.scale(zoom.scale()).translate(zoom.translate())
  canvas.select("._x._axis").call xAxis
  canvas.select(".axisLeft").call yLeftAxis
  canvas.select(".axisRight").call yRightAxis
  canvas.select(".y.grid").call make_y_axis().tickSize(-width, 0, 0).tickFormat("")
  canvas.select(".line1").attr("d", line1(data))
  canvas.select(".line2").attr("d", line2(data))
  brush.extent(xScale.domain())
  canvas.select(".brush").call(brush)

zoom = d3.behavior.zoom()
  .x(xScale)
  .y(yLeftScale)
  .scaleExtent([1,20]) # 20x times zoom
  .on("zoom", zoomed)

完整代码在这里fiddle 。如何强制缩放记住之前的刷牙选择(位置)?

最佳答案

通过在画笔上添加以下行解决了问题:

zoom.x(xScale)
zoom.translate()  

工作示例是 here .

关于javascript - D3 Zoom 重置通过刷选选择的比例。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23784092/

相关文章:

javascript - 堆叠条形图比例不一致问题

缩放和捏合后UIwebview刷新

javascript - 如何访问另一个svg下面的svg?

javascript - D3.js - 如何将时域乘以标量?

javascript - THREE.js 正交相机缩放到鼠标点

javascript - jQuery:在滚动时切换标题类,如果页面不在顶部

javascript - 克隆 dojo float Pane

javascript - Meteor,如何修复 npm 包

javascript - Bootstrap 文件输入 - 如何在初始预览中隐藏拖动按钮?

javascript - 将空间渲染为 div 文本元素中的唯一字符