防止 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
我有一个 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