如何使用画笔

时间:2016-09-15 03:15:00

标签: dc.js

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

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

除了根据当前的最小值/最大值设置轴域并稍微扩展它们之外,还有其他解决方案吗?当最小值= 0时,这有时是丑陋的,现在你的域需要包含一些小的负数。

- 尼科

2 个答案:

答案 0 :(得分:2)

总是当我遇到这个问题时,我手动将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)
    ...

也许这不是最好的解决方案,但总能为我工作。 希望它有所帮助(=。

答案 1 :(得分:1)

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

// 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]));

这使两个图表都处于下沉状态。另一个好处是我的相当大的点(符号大小= 15)不再被剪裁。

感谢罗杰。