D3.js 将.remove()放在何处以清除以前的数据点?
在通过放大或缩小切换时间间隔后,我更新时间线时遇到问题。旧数据点保留在我的图表时间线上。我已尝试在.filter之后添加.remove,但无效。如蒙指教,不胜感激。谢谢D3.js 将.remove()放在何处以清除以前的数据点?,d3.js,D3.js,在通过放大或缩小切换时间间隔后,我更新时间线时遇到问题。旧数据点保留在我的图表时间线上。我已尝试在.filter之后添加.remove,但无效。如蒙指教,不胜感激。谢谢 function update() { // re-position individual elements svg.selectAll('.element') //.remove() .filter(function(d) {
function update() {
// re-position individual elements
svg.selectAll('.element')
//.remove()
.filter(function(d) {
if (interval == 'hours') {
return d.Interval == 'hour';
}
else if (interval == 'days') {
return d.Interval == 'day';
}
else if (interval == 'weeks') {
return d.Interval == 'week';
}
else if (interval == 'months') {
return d.Interval == 'month';
}
})
.attr('transform', function (d) {
//return 'translate(' + xScale(d.date) + ', ' + yScale(d.Ranking) + ')';
if (interval == 'hours') {
return 'translate(' + xHoursScale(d.date) + ', ' + yScale(d.Ranking) + ')';
}
if (interval == 'days') {
return 'translate(' + xDaysScale(d.date) + ', ' + yScale(d.Ranking) + ')';
}
if (interval == 'weeks') {
return 'translate(' + xWeeksScale(d.date) + ', ' + yScale(d.Ranking) + ')';
}
if (interval == 'months') {
return 'translate(' + xMonthsScale(d.date) + ', ' + yScale(d.Ranking) + ')';
}
});
您没有将任何新数据绑定到点,因此不会计算退出选择。如何确定要删除的点?如何将数据绑定到点?你能给我举个简单的例子吗?谢谢。请参阅,例如。有没有一种方法可以在不绑定的情况下删除旧数据点?是的,您可以选择任何元素并调用。删除它们。
svg.selectAll('.element')
.filter(function(d) {
if (interval != 'hours') {
return d.Interval == 'hour';
}
})
.attr('visibility', 'hidden');
svg.selectAll('.element')
.filter(function(d) {
if (interval != 'days') {
return d.Interval == 'day';
}
})
.attr('visibility', 'hidden');
svg.selectAll('.element')
.filter(function(d) {
if (interval != 'weeks') {
return d.Interval == 'week';
}
})
.attr('visibility', 'hidden');
svg.selectAll('.element')
.filter(function(d) {
if (interval != 'months') {
return d.Interval == 'month';
}
})
.attr('visibility', 'hidden');
svg.selectAll('.element')
.filter(function(d) {
if (interval == 'hours') {
return d.Interval == 'hour';
}
})
.attr('visibility', 'visible');
svg.selectAll('.element')
.filter(function(d) {
if (interval == 'days') {
return d.Interval == 'day';
}
})
.attr('visibility', 'visible');
svg.selectAll('.element')
.filter(function(d) {
if (interval == 'weeks') {
return d.Interval == 'week';
}
})
.attr('visibility', 'visible');
svg.selectAll('.element')
.filter(function(d) {
if (interval == 'months') {
return d.Interval == 'month';
}
})
.attr('visibility', 'visible');