我正在尝试复制this Focus+Context via Brushing示例。我包括相同的布局,但使用散点图而不是线/面图。
我开始研究发现的this示例,该示例结合了面积图和散点图。但是,当我废弃面积图时,会失去缩放/聚焦功能。
我的最后一步(因此非常失败)是使画笔(底部的小焦点栏)实际响应主面板(当在画笔中选择了较小的时间段时,使其进行调整/放大)。笔刷会根据需要调整轴,但我只是无法使笔刷实际调整/缩放主散点图上的点。我不打算在笔刷上画任何东西-会有很多点,因此将笔刷保持为灰色背景且没有点是好的。
这是我的小提琴:http://jsfiddle.net/fuqzp580/3/
旁注:我不能完全按照我使用d3.csv
的方式来使用jsfiddle,因此我用伪数据编码了一个稍作改动的版本,以代替使用d3.csv
。但是,我包含了d3.csv
代码(注释掉了),以防万一可能导致我的问题。
我是d3
的新手,欢迎任何提示或想法!
最佳答案
这是更新的小提琴,其点将主面板中的点放大:http://jsfiddle.net/henbox/3uwg92f8/1/
您非常接近,我做了3个小更改:
首先,取消注释您在function brushed()
中用于选择点的代码
其次,全局定义mydots
(因为您仅在initialize()
内部进行操作,并且需要在此范围之外使用)。在第55行中添加了此代码:
var mydots = focus.append("g");
最后(也是最重要的),我将
xMap
的定义从xMap = function(d) { return x2(d.time); }
至
xMap = function(d) { return x(d.time); }
刷牙时,更新的是
x
刻度,而不是x2