Determining Zoom

It is possible to detect whether a chart has been zoomed in either axis by the use of the isZoomed function. If called with no argument, it will report whether either axis has been zoomed. Alternatively it can be called with an argument of either 'x' or 'y' and it will report the status of just that axis.

Here's a simple example using drawCallback to display the various zoom states whenever the chart is zoomed:

OUTPUT

Zoomed: False

Zoomed X: False

Zoomed Y: False

HTML
  new Dygraph(

  // containing div
  document.getElementById("zoomdiv"),

  // CSV or path to a CSV file.
  "Date,Temperature\n" +
  "2011-01-07,75\n" +
  "2011-01-08,70\n" +
  "2011-01-09,90\n" +
  "2011-01-10,30\n" +
  "2011-01-11,40\n" +
  "2011-01-12,60\n" +
  "2011-01-13,70\n" +
  "2011-01-14,40\n",
  {
    drawCallback: function(me, initial) {
    document.getElementById("zoomed").innerHTML = "" + me.isZoomed();
    document.getElementById("zoomedX").innerHTML = "" + me.isZoomed("x");
    document.getElementById("zoomedY").innerHTML = "" + me.isZoomed("y");
    }
  }
  );

The Tests for zoom operations show a full example of this in action.

Programmatic Zoom

When a chart is programmatically zoomed by updating either the dateWindow or valueRange option, by default the zoomed flags are also updated correspondingly. It is possible to prevent this by specifying the isZoomedIgnoreProgrammaticZoom in the same call to the updateOptions method.

The is-zoomed-ignore-programmatic-zoom test shows this in operation.