Javascript 用d3.js/c3.js替换图表数据集
在演示中,我尝试卸载所有当前数据集并加载新数据集,如下所示:Javascript 用d3.js/c3.js替换图表数据集,javascript,jquery,arrays,d3.js,c3.js,Javascript,Jquery,Arrays,D3.js,C3.js,在演示中,我尝试卸载所有当前数据集并加载新数据集,如下所示: chart.load({ columns: [ ['data1', 130, 120, 150, 140, 160], ['data2', 30, 20, 50, 40, 60, 50], ], unload: ['data3', 'data4', 'data5'], }); 使用C3.js 这显然不是处理此过程的正确方法,正如演示所示,这无法正常工作 C3教程指出,数据集应按
chart.load({
columns: [
['data1', 130, 120, 150, 140, 160],
['data2', 30, 20, 50, 40, 60, 50],
],
unload: ['data3', 'data4', 'data5'],
});
使用C3.js
这显然不是处理此过程的正确方法,正如演示所示,这无法正常工作
C3教程指出,数据集应按如下方式替换:
chart.load({
columns: [
['data1', 130, 120, 150, 140, 160],
['data2', 30, 20, 50, 40, 60, 50],
],
unload: ['data3', 'data4', 'data5'],
});
再次演示表明,这是正确的工作,但
问题
如何卸载所有当前数据集并用新数据集替换它们,而不必指定它们各自的数据名(data3
,data4
)等
注意:数据集在名称和数量上是可变的,因此我只想卸载所有数据集
从根本上说,我所要做的就是在单击时用新的数据集替换数据集。我不知道它是否对您有用,在过去我使用过这种方法(在加载的相同功能中卸载)。你的代码应该是
chart.load({
columns: [
['data1', 130, 120, 150, 140, 160, 150],
['data4', 30, 20, 50, 40, 60, 50],
],
unload: chart.columns,
});
工作
谢谢你的意见,但这是我上面提到的推荐方法。我需要能够在不指定名称的情况下卸载所有数据集。@Obsidian我已经更新了答案。这是您正在寻找的吗?这不应该卸载刚刚添加的列吗?
$('#A').on('click', function () {
chart.load({
columns: [
['data1', 130, 120, 150, 140, 160, 150],
['data4', 30, 20, 50, 40, 60, 50],
],
unload: chart.columns,
});
});
$('#B').on('click', function () {
chart.load({
columns: [
['data1', 130, 120, 150, 140, 160, 150],
['data4', 30, 20, 50, 40, 60, 50],
],
unload: chart.columns,
});
});