Replacing chart datasets with d3.js / c3.js
Asked Answered
H

1

5

DEMO HERE

In the demo I am attempting to unload all current datasets and load new ones like this:

Using C3.js

chart.unload();
chart.load({
    columns: [
        ['data1', 130, 120, 150, 140, 160],
        ['data2', 30, 20, 50, 40, 60, 50],
    ],
});

This is obviously not the correct way to handle this process as the demo shows, this does not work correctly.

The C3 tutorial states that data sets should be replaced like this:

chart.load({
    columns: [
        ['data1', 130, 120, 150, 140, 160],
        ['data2', 30, 20, 50, 40, 60, 50],
    ],
    unload: ['data3', 'data4', 'data5'],
});

Again the demo shows this works correctly however...

QUESTION

How can I unload ALL current datasets and replace them with new ones without having to specify their individual data names (data3,data4) etc?

Note: The data sets are variable in name and quanity, hence why I just want to unload ALL.

Fundamentally all I want to do is replace the data sets with new ones on click.

Haygood answered 16/12, 2014 at 12:20 Comment(0)
G
10

I don't know if it could be usefull for you, in the past I have used this (unload in the same function of load). For your code it should be

chart.load({
     columns: [
          ['data1', 130, 120, 150, 140, 160, 150],
          ['data4', 30, 20, 50, 40, 60, 50],
      ],
     unload: chart.columns,
});

working fiddle

$('#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,
    });
});
Gorgerin answered 16/12, 2014 at 12:40 Comment(3)
Thanks for your input but this is the recomended way to do it as I mentioned above. I need to be able to unload all datasets without specifying their names.Haygood
@Obsidian I've updated my answer. Is what you were looking for?Gorgerin
shouldn't this unload the columns that have just been added?Haygood

© 2022 - 2024 — McMap. All rights reserved.