D3.js无限扩展使用d3.svg.brush

时间:2015-07-28 07:55:37

标签: javascript d3.js svg scale brush

我正在使用d3.js而且我想在我的整个svg画布上使用画笔(使用缩放和平移支持),所以我只是将无限范围放在线性比例中,如下所示:

d3.svg.brush()
    .x(d3.scale.linear().range([-Infinity, Infinity]))
    .y(d3.scale.linear().range([-Infinity, Infinity]))
    ...()

刷子正在处理整个sv,但是在使用这个'技巧时会出现一些令人讨厌的javascript错误

Invalid value for <rect> attribute x="NaN"

工作示例:http://jsfiddle.net/cn010zt3/

有关如何正确执行此操作的想法吗?

1 个答案:

答案 0 :(得分:1)

D3 scales require actual values and won't work properly with Infinity. You don't need to use Infinity anyway, as your SVG has a finite size -- simply use that. Complete demo here.