2016-04-24 14:26:11 +00:00
<!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" >
2019-04-08 16:55:26 +00:00
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.canvaswrapper.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.colorhelpers.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.saturated.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.browser.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.drawSeries.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.errorbars.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.uiConstants.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.logaxis.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.symbol.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.flatdata.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.navigate.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.fillbetween.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.stack.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.touchNavigate.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.hover.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.touch.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.time.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.axislabels.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.selection.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.composeImages.js" > < / script >
< script language = "javascript" type = "text/javascript" src = "../../source/jquery.flot.legend.js" > < / script >
2016-04-24 14:26:11 +00:00
< 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
}
},
2019-04-08 16:55:26 +00:00
xaxis: {
autoScale: "none"
},
2016-04-24 14:26:11 +00:00
yaxis: {
2019-04-08 16:55:26 +00:00
autoScale:"none",
2016-04-24 14:26:11 +00:00
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: {
2019-04-08 16:55:26 +00:00
autoScale: "none",
2016-04-24 14:26:11 +00:00
ticks: 4
},
yaxis: {
2019-04-08 16:55:26 +00:00
autoScale: "none",
2016-04-24 14:26:11 +00:00
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 >