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

Javascript 防止d3线图中的y轴在拖动时低于0,javascript,d3.js,graph,Javascript,D3.js,Graph,我有一个d3线图(可以在这里查看-)。该图形仅允许在y轴上缩放。默认情况下,它允许拖动。我想阻止人们在y轴上拖动到0以下。我在某个地方读到,没有必要编写一个新的拖动函数,因为缩放可以处理这个问题。因此,我尝试在缩放时调用的函数(重画)上实现逻辑,但无法找出如何防止人们在y轴上拖动到0以下。下面是重画函数的代码 function redraw() { if (y.domain()[0] < 0) { y.domain()[0] = 0;

我有一个d3线图(可以在这里查看-)。该图形仅允许在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);
    }        
} 
函数重画(){
如果(y.domain()[0]<0){
y、 域()[0]=0;
vis.selectAll(“[ty='line']”)attr('d',line”);
vis.select(“.y.axis”).调用(yAxis);
返回;
}否则{
vis.select(“.y.axis”).调用(yAxis);
vis.selectAll(“[ty='line']”)attr('d',line”);
}        
} 

在Lars Kotthoff的评论中发布了一个如何解决该问题的链接

请参见。@Larskothoff对此深表感谢。它仍然有点不正常,但90%的时间都能正常工作。嗯,这个例子对我来说很好。@Larskothoff这是我的错。它工作得很好。谢谢