UNPKG

dygraphs

Version:

dygraphs is a fast, flexible open source JavaScript charting library.

115 lines (102 loc) 4.44 kB
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>zoom</title> <link rel="stylesheet" type="text/css" href="../dist/dygraph.css" /> <link rel="stylesheet" type="text/css" href="../common/vextlnk.css" /> <script type="text/javascript" src="../dist/dygraph.js"></script> <script type="text/javascript" src="data.js"></script> </head> <body> <h3>Click the buttons to change the zoom level or just use the normal click-and drag. While zoom typically works by click-and-drag, the buttons are useful for testing.</h3> <h4>Window coordinates (in dates and values):</h4> <div id="xdimensions"></div> <div id="ydimensions"></div> <div style="float: right"> <p>Zoomed: <span id="zoomed">False</span></p> <p>Zoomed X: <span id="zoomedX">False</span></p> <p>Zoomed Y: <span id="zoomedY">False</span></p> </div> <div id="div_g" style="width:600px; height:300px;"></div> <p><b>Zoom operations:</b></p> <p> <input type="button" value="Y (3,5)" onclick="zoomGraphY(3,5)">  <input type="button" value="Y (0,4)" onclick="zoomGraphY(0,4)">  <input type="button" value="Y (2,4)" onclick="zoomGraphY(2,4)">  <input type="button" value="Y (0,2)" onclick="zoomGraphY(0,2)">  <input type="button" value="Y (0,1)" onclick="zoomGraphY(0,1)">  <br> <br> <input type="button" value="Oct 8-13" onclick="zoomGraphX(1160261979962, 1163905694248)">  <input type="button" value="Oct 22-28" onclick="zoomGraphX(1161489164461 , 1162008465957)">  <input type="button" value="Oct 23-24" onclick="zoomGraphX(1161575878860, 1161660991675)">  <input type="button" value="Oct 26 6AM-noon" onclick="zoomGraphX(1161770537840, 1161792063332)">  <br> <br> <input type="button" value="Unzoom" onclick="unzoomGraph()">  <br> <br> <input type="button" value="pan frame null" onclick="panEdgeFraction(null)">  <input type="button" value="pan frame 0.1" onclick="panEdgeFraction(0.1)">  <input type="button" value="pan frame 0.5" onclick="panEdgeFraction(0.5)">  </p> <script type="text/javascript"><!--//--><![CDATA[//><!-- Dygraph.onDOMready(function onDOMready() { g = new Dygraph( document.getElementById("div_g"), NoisyData, { errorBars: true, zoomCallback: function(minDate, maxDate, yRange) { showDimensions(minDate, maxDate, yRange); }, drawCallback: function() { document.getElementById("zoomed").innerHTML = "" + this.isZoomed(); document.getElementById("zoomedX").innerHTML = "" + this.isZoomed("x"); document.getElementById("zoomedY").innerHTML = "" + this.isZoomed("y"); } } ); // TODO(konigsberg): Implement a visualization that verifies that initial // displays also show correctly. // Pull an initial value for logging. var minDate = g.xAxisRange()[0]; var maxDate = g.xAxisRange()[1]; var minValue = g.yAxisRange()[0]; var maxValue = g.yAxisRange()[1]; showDimensions(minDate, maxDate, [minValue, maxValue]); function showDimensions(minDate, maxDate, yRanges) { showXDimensions(minDate, maxDate); showYDimensions(yRanges); } function showXDimensions(first, second) { var elem = document.getElementById("xdimensions"); elem.innerHTML = "dateWindow : [" + first + ", "+ second + "]"; } function showYDimensions(ranges) { var elem = document.getElementById("ydimensions"); elem.innerHTML = "valueRange : [" + ranges + "]"; } zoomGraphX = function zoomGraphX(minDate, maxDate) { g.updateOptions({ dateWindow: [minDate, maxDate] }); showXDimensions(minDate, maxDate); } zoomGraphY = function zoomGraphY(minValue, maxValue) { g.updateOptions({ valueRange: [minValue, maxValue] }); showYDimensions(g.yAxisRanges()); } unzoomGraph = function unzoomGraph() { g.updateOptions({ dateWindow: null, valueRange: null }); } panEdgeFraction = function panEdgeFraction(value) { g.updateOptions({ panEdgeFraction : value }); } }); //--><!]]></script> </body> </html>