<p>The <a href="tests/zoom.html">Tests for zoom operations</a> show a full example of this in action.</p>
+ <h3>Programmatic Zoom</h3>
+ <p>
+ When a chart is programmatically zoomed by updating either the <code>dateWindow</code>
+ or <code>valueRange</code> option, by default the zoomed flags are also updated correspondingly.
+ It is possible to prevent this by specifying the <code>noZoomFlagChange</code> in the same
+ call to the <code>updateOptions</code> method.
+ </p>
+ <p>
+ The <a href="tests/no-zoom-change.html">no-zoom-change</a> test shows this in operation.
+ </p>
+
<h2 id="stock">One last demo</h2>
<p>This chart shows monthly closes of the Dow Jones Industrial Average, both in nominal and real (i.e. adjusted for inflation) dollars. The shaded areas show its monthly high and low. CPI values with a base from 1982-84 are used to adjust for inflation.</p>
</td>
</tr>
<tr>
+ <td colspan="4">
+ Changing either of two the above options will cause the corresponding zoom
+ flag (<code>isZoomed()</code>) to be set, unless the <code>noZoomFlagChange</code>
+ option is also specified.
+ </td>
+ </tr>
+ <tr>
<td><strong>labelsSeparateLines</strong></td>
<td><code>boolean</code></td>
<td><code>false</code></td>
this.start_();
};
-// Axis is an optional parameter. Can be set to 'x' or 'y'.
+/**
+ * Returns the zoomed status of the chart for one or both axes.
+ *
+ * Axis is an optional parameter. Can be set to 'x' or 'y'.
+ *
+ * The zoomed status for an axis is set whenever a user zooms using the mouse
+ * or when the dateWindow or valueRange are updated (unless the noZoomFlagChange
+ * option is also specified).
+ */
Dygraph.prototype.isZoomed = function(axis) {
if (axis == null) return this.zoomed_x_ || this.zoomed_y_;
if (axis == 'x') return this.zoomed_x_;
* <li>file: changes the source data for the graph</li>
* <li>errorBars: changes whether the data contains stddev</li>
* </ul>
+ *
+ * If the dateWindow or valueRange options are specified, the relevant zoomed_x_
+ * or zoomed_y_ flags are set, unless the noZoomFlagChange option is also
+ * secified. This allows for the chart to be programmatically zoomed without
+ * altering the zoomed flags.
+ *
* @param {Object} attrs The new properties and values
*/
Dygraph.prototype.updateOptions = function(attrs) {