我正在尝试复制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

09-25 13:09