【发布时间】:2013-10-11 23:31:15
【问题描述】:
我已经设法使 d3.js 线+面积图与焦点/上下文刷和平移/缩放同步,这里有一个小例子:
我无法将平移限制在原始域边界处停止,同时也可以很好地使用画笔。这是为了防止用户在他们的视图中丢失图表。
虽然我尝试手动检测平移何时超出边界,然后设置 zoom.translate([0,0]),例如在这些示例中: d3.js scatter plot - zoom/drag boundaries, zoom buttons, reset zoom, calculate median Limiting domain when zooming or panning in D3.js d3.js scatter plot - zoom/drag boundaries, zoom buttons, reset zoom, calculate median
...就像我在第 183 行所做的那样:
//If exceed original domain, limit panning by resetting translate
if (x.domain()[0] < x0.domain()[0]) {
zoom.translate([0, 0]);
}
在以下情况下会出现问题: 1)在小上下文图中创建一个画笔区域 2) 将大焦点图一直平移到最早日期 3) 平移快到边界时图跳动
如果有任何帮助来防止跳跃发生,或者是否有任何其他方法可以将平移(以及最终缩小)限制在原始域边界,我们将不胜感激。
关于限制缩小,设置:
var zoom = d3.behavior.zoom().x(x).scaleExtent([1,10]).on("zoom", zoomed);
...效果不佳,因为缩小将仅限于画笔区域,而不是图形数据的全部范围。
非常感谢!
【问题讨论】:
-
你成功了吗?你能上传例子吗?