在我的jsfiddle中,如果您单击Pending
图例中的按钮,它应该删除与该类别关联的条。这可行,但是当我单击Reset Legend
按钮(它为currateData
方法提供原始数据,以便Pending
条形恢复)时,它会将旧的待处理数据加载到不合适的位置。
我相信它与这种方法有关:
function redrawPlot() {
svg = d3.select('svg.chart')
.attr('width', width)
.attr('height', height);
svg.selectAll('g.xaxis')
.attr('transform', 'translate(0, ' + (height - margin.top - margin.bottom) + ')');
}
我无法删除此方法,因为我的代码比 jsfiddle 中显示的更复杂,这只是显示问题。我还需要在重绘方法中更新宽度和高度,所以我不能只删除它。
如何更改 redrawPlot() 方法,以便在重新填充图表时,添加旧数据时不会弄乱条形位置?