防止 d3 折线图中的 y 轴在拖动时低于 0

Prevent the y-axis in a d3 line graph from going below 0 on drag

我有一个 d3 线图(可以在这里查看 - the graph)。该图仅允许在 y 轴上缩放。默认情况下它允许拖动。我想阻止人们在 y 轴上拖动到 0 以下。我在某处读到,无需编写新的拖动功能,因为缩放可以解决这个问题。因此,我尝试在缩放时调用的函数(重绘)上实现逻辑,但无法弄清楚如何防止人们在 y 轴上拖动到 0 以下。下面是重绘函数的代码

function redraw() {  

    if (y.domain()[0] < 0) {
            y.domain()[0] = 0;
            vis.selectAll("[ty='line']").attr('d', line); 
            vis.select(".y.axis").call(yAxis);               
            return;

    } else {
        vis.select(".y.axis").call(yAxis);
        vis.selectAll("[ty='line']").attr('d', line);
    }        
} 

Lars Kotthoff

在评论中发布了关于如何解决该问题的 link