How to make flot responsive?

SB2055 picture SB2055 · Jun 21, 2013 · Viewed 15.8k times · Source

In the following fiddle:

http://jsfiddle.net/jamitzky/9x7aJ/

How can I make the graph's width change if the window width changes?

code:

$(function () {
var d1 = [];
for (var i = 0; i < 14; i += 0.5)
    d1.push([i, Math.sin(i)]);

var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];

// a null signifies separate line segments
var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];

$.plot($("#placeholder"), [ d1, d2, d3 ]);
});

Answer

Spencer picture Spencer · Jun 21, 2013

Try something like this:

Flot will auto draw to the container it's in. So if your div is responsive Flot will be responsive.

http://jsfiddle.net/9x7aJ/2029/

then all you have to do is redraw the flot if your window resizes:

You can watch to see if the window resizes with:

    window.onresize = function(event) {
    ...
}

(see: JavaScript window resize event)