D3.js dimple.js按图例过滤数据时出错

D3.js dimple.js按图例过滤数据时出错,d3.js,legend,dimple.js,D3.js,Legend,Dimple.js,我正在使用一个酒窝条形图图例来过滤图表中的数据,如图中所示 虽然过滤按预期进行,但会向控制台抛出d3错误: 错误:属性x:预期长度“NaN” 知道是什么导致了这个错误吗?不知道是什么导致了这个错误 我的直觉告诉我的是,当图表用新数据重新绘制时,会访问上一组数据中的形状,因为它们在内存中是独立的对象。也就是说,数据生成的序列存在于图表的svg对象中,但在重新绘制图表之前,它与数据的更改没有任何关系。如果这是真的,那可能就是为什么它没有找到轴的值来绘制存在于那里的形状。(我想知道将来是否会有一个无声

我正在使用一个酒窝条形图图例来过滤图表中的数据,如图中所示

虽然过滤按预期进行,但会向控制台抛出d3错误: 错误:属性x:预期长度“NaN”


知道是什么导致了这个错误吗?

不知道是什么导致了这个错误

我的直觉告诉我的是,当图表用新数据重新绘制时,会访问上一组数据中的形状,因为它们在内存中是独立的对象。也就是说,数据生成的序列存在于图表的svg对象中,但在重新绘制图表之前,它与数据的更改没有任何关系。如果这是真的,那可能就是为什么它没有找到轴的值来绘制存在于那里的形状。(我想知道将来是否会有一个无声失败的选项)

无论如何,如果您正在重新绘制图表,您可以执行以下解决方法:

if (oldChartData.length > newChartData.length) {
    chart.svg.selectAll('*').remove();
    createChart(newChartData);
}
它很脏,但能用


编辑:相关的github问题。

Emma,看起来这可能只在google chrome上出现。当我尝试使用IE时,我并没有在控制台中显示该错误。我将查找该错误。谢谢你的提示。你找到问题的真正原因了吗?如果有,请与我们分享。谢谢不幸的是,酒窝似乎不再保持了。我向d3提出的同一个问题得到了审查,他们说这是我的问题dimple@Emma你介意把这个问题联系起来吗?如果有人能想出这个,那就太好了。
if (oldChartData.length > newChartData.length) {
    chart.svg.selectAll('*').remove();
    createChart(newChartData);
}