如何使用画笔选择 DC.JS 散点图中的最高点

How to pick the highest point in DC.JS scatterplot using brush

我正在使用 DC.JS 散点图让用户 select 兴趣点。如果使用弹性轴,则不能 select 最高值点。查看 DC.JS 示例 (https://dc-js.github.io/dc.js/examples/scatter-brushing.html)。您不能 select 左侧或右侧图中的最高点。

在某些情况下,最高点或最低点正是人们需要能够 select 因为这些是我们关心的异常值。如果禁用弹性轴并确保指定的范围高于最大值,则可以 select 该点。

除了根据当前min/max设置轴域并稍微扩展外,还有其他解决方案吗?当最小值=0 时,这有时很难看,现在您的域需要包含一些小的负数。

--妮可

总是当我遇到这个问题时,我手动将 y 域增加 5%。 例如:

var balanceDomain = d3.scale.linear().domain([0, s.balanceDimension.top(1)[0].balance + (s.balanceDimension.top(1)[0].balance*0.05)]);

s.amountOverallScore
    .width(400)
    .height(400)
    .x(someDomain)
    .y(balanceDomain)
    ...

也许这不是最好的解决方案,但对我来说总是有效的。 希望对你有帮助(=.

在我的应用程序中,值始终为正,我使用以下方法获得正确的行为:

// using reductio on the all_grp to get easy access to filtered min,max,avg,etc.
totalTimeMinValue = all_grp.top(1)[0].value.min;
totalTimeMaxValue = all_grp.top(1)[0].value.max;    

// now use it to scale the charts we want
detail1_chart.y(d3.scale.linear().domain([totalTimeMinValue-1, totalTimeMaxValue+1]));
detail3_chart.y(d3.scale.linear().domain([totalTimeMinValue-1, totalTimeMaxValue+1]));

这使两个图表都处于接收器中。另一个好处是我的相当大的点 (symbolsize=15) 不再被剪裁。

谢谢罗杰。