Update line chart

71 views Asked by At

I am working with dimple js and I have a code of line chart but here is the problem I set event,that whenever a button clicked, chart draw again but chart.draw() did't work.where is the problem any help would be grateful html :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<button id="test">Click Me</button>
<div id="chartContainer" class="chart_style"></div>
</body>
<script src="js/d3.js" charset="utf-8"></script>
<script src="js/dimple.js"></script>
<script type="text/javascript">
    var svg = dimple.newSvg("#chartContainer", 600, 400),
            data = [
                { "Value" : 10, "Year" : 2009 },
                { "Value" : 5, "Year" : 2010 },
                { "Value" : 4, "Year" : 2011 },
                { "Value" : 7, "Year" : 2012 },
                { "Value" : 10, "Year" : 2010 },
                { "Value" : 50, "Year" : 2020 },
                { "Value" : 40, "Year" : 2015 },
                { "Value" : 100, "Year" : 2014 },
                { "Value" : 200, "Year" : 2014 }
            ];
    var chart = new dimple.chart(svg, data);
    var x = chart.addCategoryAxis("x", "Year");
    x.addOrderRule("Year");
    var y = chart.addMeasureAxis("y", "Value");
    chart.addColorAxis("Value", ["green", "yellow", "red"]);
    var lines = chart.addSeries(null, dimple.plot.line);
    lines.lineWeight = 4;
    lines.lineMarkers = true;
    chart.ease = "bounce";
    chart.staggerDraw = true;
    chart.draw(2000);
    d3.select("#test").on("click", function() {
     ///here is the problem
        data = [
            { "Value" : 10, "Year" : 2009 },
            { "Value" : 5, "Year" : 2010 },
            { "Value" : 4, "Year" : 2011 },
            { "Value" : 50, "Year" : 2020 },
            { "Value" : 40, "Year" : 2015 },
            { "Value" : 120, "Year" : 2014 },
            { "Value" : 150, "Year" : 2011 },
            { "Value" : 500, "Year" : 2018 },
            { "Value" : 250, "Year" : 2015 },
            { "Value" : 200, "Year" : 2014 }
        ];
        chart.draw(1000);
    });
</script>
</html> 
1

There are 1 answers

0
Lars Kotthoff On BEST ANSWER

You need to use update the chart.data attribute to change the data associated with the chart:

chart.data = [ ... ];

In your code, you're reassigning the data variable, which isn't linked to the dimple chart. Complete demo here.