防止D3笔刷具有空选择

时间:2018-12-17 16:38:58

标签: javascript d3.js brush

具有一个带有两个用于选择范围的处理程序的选择器,我使用d3.brush来获取该范围。

出现的问题是,当两个选择器都使用相同的值(例如0)时,包含相同值[0,0]的数组将变为null

我不知道为什么会这样,应该如何避免。

const brush = d3.brushX()
    .extent([[0, 0], [100, 100]])
    .on('brush.drag', () => {
        const selection = d3.event.selection;
        updateSomethingFromSelection(selection);
    })
    .on('end', () => {
        const selection = d3.event.selection;
        updateSomethingFromSelection(selection);
    })
    .on('brush.heatmap', () => {
        const selection  = d3.event.selection;
        updateSomethingElse(selection);
    });

我要避免的是选择null。您能以某种方式告诉d3画笔永远不要选择null吗?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您是正确的,如果笔刷中的范围为0 d3,则将其视为"empty"。正如您在源代码中看到的here一样,这会将选择重新设置为null。迫使d3绘制“空”的唯一方法是为d3提供一个非常小的值,然后让它首先绘制。