小编Vit*_*l V的帖子

将d3缩放scaleExtent设置为正值

好吧,首先,这里有一个jsfiddle来说明我想问的问题

所以我试图实现缩放行为.我设法通过设置一个转换到缩放功能来限制缩放(我真的不太明白,从另一个SO问题得到它),以及缩放行为的scaleExtent([1,10])

所以这是缩放行为:

  zoom = d3.behavior.zoom()
                     .x(xScale)
                     .y(yScale)
                     .scaleExtent([1, 10])
                     .on("zoom", zoomed)
Run Code Online (Sandbox Code Playgroud)

这是缩放功能:

zoomed = ->

t = zoom.translate()
s = zoom.scale()

tx = t[0]
ty = t[1]

tx = Math.min(0, Math.max(w * (1-s), t[0]))
ty = Math.min(0, Math.max((h-padding) * (1-s), t[1]))

zoom.translate([tx, ty])

svgContainer.select("g.x.axis").call xAxis
svgContainer.select("g.y.axis").call yAxis

svgContainer.selectAll("line.matched_peak")
                        .attr("x1", (d) -> return xScale(d.m_mz) )
                        .attr("y1", h - padding)
                        .attr("x2", (d) -> return xScale(d.m_mz) )
                        .attr("y2", (d) -> return yScale(d.m_intensity) )
Run Code Online (Sandbox Code Playgroud)

但是,将scaleExtent设置为

.scaleExtent([1, 10]) ,

使得y比例中值为1的特定点永远不会显示(jsfiddle左侧的第一个).但是设定 …

zoom d3.js

2
推荐指数
1
解决办法
8545
查看次数

标签 统计

d3.js ×1

zoom ×1