在通过放大或缩小切换时间间隔后,我无法更新时间线。旧数据点仍保留在我的图表上(时间轴)。我尝试在.filter()之后添加.remove()但它没有用。不胜感激任何善意的建议。感谢。
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) + ')';
}
});
答案 0 :(得分:0)
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');