Search code examples
javascriptgraphflotseries

How to create dynamic data series for Flot graph?


I need to create a dynamic dataseries for flot graph. My x-axis is time and y axis is count.

I need to show 5 graphs with different colors. How I will give data series for Flot.


Solution

  • Here's an example of 5 graphs with 5 different colors using time as the X axis. Clicking on the links updates the data series and the graphs.

    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
    
    <div id="graph_1" style="width:300px;height:100px;"></div>
    <div id="graph_2" style="width:300px;height:100px;"></div>
    <div id="graph_3" style="width:300px;height:100px;"></div>
    <div id="graph_4" style="width:300px;height:100px;"></div>
    <div id="graph_5" style="width:300px;height:100px;"></div>
    
    <script>
    // Initialize the data to be graphed
    var data = new Array();
    data[0] = new Array();
    data[1] = new Array();
    data[2] = new Array();
    data[3] = new Array();
    data[4] = new Array();
    
    var ticks = new Array();
    
    draw_graphs();
    
    // Draw the graphs
    function draw_graphs() {
        $.plot($("#graph_1"), [{data:data[0],color:1}],{ xaxis: { mode: "time" }});
        $.plot($("#graph_2"), [{data:data[1],color:2}],{ xaxis: { mode: "time" }});
        $.plot($("#graph_3"), [{data:data[2],color:3}],{ xaxis: { mode: "time" }});
        $.plot($("#graph_4"), [{data:data[3],color:4}],{ xaxis: { mode: "time" }});
        $.plot($("#graph_5"), [{data:data[4],color:5}],{ xaxis: { mode: "time" }});
    }
    
    // Update the data
    function change_data(n) {
        d = new Date();
        data[n].push([d.getTime(),n]);
        draw_graphs();
    }
    
    </script>
    
    <a href="#" onclick="change_data(0)">Update 1</a><br>
    <a href="#" onclick="change_data(1)">Update 2</a><br>
    <a href="#" onclick="change_data(2)">Update 3</a><br>
    <a href="#" onclick="change_data(3)">Update 4</a><br>
    <a href="#" onclick="change_data(4)">Update 5</a><br>
    

    You can also use the flot example pages on Updating Graphs with AJAX and Time