| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | 
							- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
- <html>
 
- <head>
 
- 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
- 	<title>Flot Examples: Selection and zooming</title>
 
- 	<link href="../examples.css" rel="stylesheet" type="text/css">
 
- 	<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
 
- 	<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
 
- 	<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
 
- 	<script language="javascript" type="text/javascript" src="../../jquery.flot.selection.js"></script>
 
- 	<script type="text/javascript">
 
- 	$(function() {
 
- 		// setup plot
 
- 		function getData(x1, x2) {
 
- 			var d = [];
 
- 			for (var i = 0; i <= 100; ++i) {
 
- 				var x = x1 + i * (x2 - x1) / 100;
 
- 				d.push([x, Math.sin(x * Math.sin(x))]);
 
- 			}
 
- 			return [
 
- 				{ label: "sin(x sin(x))", data: d }
 
- 			];
 
- 		}
 
- 		var options = {
 
- 			legend: {
 
- 				show: false
 
- 			},
 
- 			series: {
 
- 				lines: {
 
- 					show: true
 
- 				},
 
- 				points: {
 
- 					show: true
 
- 				}
 
- 			},
 
- 			yaxis: {
 
- 				ticks: 10
 
- 			},
 
- 			selection: {
 
- 				mode: "xy"
 
- 			}
 
- 		};
 
- 		var startData = getData(0, 3 * Math.PI);
 
- 		var plot = $.plot("#placeholder", startData, options);
 
- 		// Create the overview plot
 
- 		var overview = $.plot("#overview", startData, {
 
- 			legend: {
 
- 				show: false
 
- 			},
 
- 			series: {
 
- 				lines: {
 
- 					show: true,
 
- 					lineWidth: 1
 
- 				},
 
- 				shadowSize: 0
 
- 			},
 
- 			xaxis: {
 
- 				ticks: 4
 
- 			},
 
- 			yaxis: {
 
- 				ticks: 3,
 
- 				min: -2,
 
- 				max: 2
 
- 			},
 
- 			grid: {
 
- 				color: "#999"
 
- 			},
 
- 			selection: {
 
- 				mode: "xy"
 
- 			}
 
- 		});
 
- 		// now connect the two
 
- 		$("#placeholder").bind("plotselected", function (event, ranges) {
 
- 			// clamp the zooming to prevent eternal zoom
 
- 			if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) {
 
- 				ranges.xaxis.to = ranges.xaxis.from + 0.00001;
 
- 			}
 
- 			if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) {
 
- 				ranges.yaxis.to = ranges.yaxis.from + 0.00001;
 
- 			}
 
- 			// do the zooming
 
- 			plot = $.plot("#placeholder", getData(ranges.xaxis.from, ranges.xaxis.to),
 
- 				$.extend(true, {}, options, {
 
- 					xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
 
- 					yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
 
- 				})
 
- 			);
 
- 			// don't fire event on the overview to prevent eternal loop
 
- 			overview.setSelection(ranges, true);
 
- 		});
 
- 		$("#overview").bind("plotselected", function (event, ranges) {
 
- 			plot.setSelection(ranges);
 
- 		});
 
- 		// Add the Flot version string to the footer
 
- 		$("#footer").prepend("Flot " + $.plot.version + " – ");
 
- 	});
 
- 	</script>
 
- </head>
 
- <body>
 
- 	<div id="header">
 
- 		<h2>Selection and zooming</h2>
 
- 	</div>
 
- 	<div id="content">
 
- 		<div class="demo-container">
 
- 			<div id="placeholder" class="demo-placeholder" style="float:left; width:650px;"></div>
 
- 			<div id="overview" class="demo-placeholder" style="float:right;width:160px; height:125px;"></div>
 
- 		</div>
 
- 		<p>Selection support makes it easy to construct flexible zooming schemes. With a few lines of code, the small overview plot to the right has been connected to the large plot. Try selecting a rectangle on either of them.</p>
 
- 	</div>
 
- 	<div id="footer">
 
- 		Copyright © 2007 - 2014 IOLA and Ole Laursen
 
- 	</div>
 
- </body>
 
- </html>
 
 
  |