You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			145 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
		
		
			
		
	
	
			145 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			HTML
		
	
| 
											11 years ago
										 | <!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> |