index.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>Flot Examples: Selection and zooming</title>
  6. <link href="../examples.css" rel="stylesheet" type="text/css">
  7. <script language="javascript" type="text/javascript" src="../../source/jquery.js"></script>
  8. <script language="javascript" type="text/javascript" src="../../source/jquery.canvaswrapper.js"></script>
  9. <script language="javascript" type="text/javascript" src="../../source/jquery.colorhelpers.js"></script>
  10. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.js"></script>
  11. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.saturated.js"></script>
  12. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.browser.js"></script>
  13. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.drawSeries.js"></script>
  14. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.errorbars.js"></script>
  15. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.uiConstants.js"></script>
  16. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.logaxis.js"></script>
  17. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.symbol.js"></script>
  18. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.flatdata.js"></script>
  19. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.navigate.js"></script>
  20. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.fillbetween.js"></script>
  21. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.stack.js"></script>
  22. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.touchNavigate.js"></script>
  23. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.hover.js"></script>
  24. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.touch.js"></script>
  25. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.time.js"></script>
  26. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.axislabels.js"></script>
  27. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.selection.js"></script>
  28. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.composeImages.js"></script>
  29. <script language="javascript" type="text/javascript" src="../../source/jquery.flot.legend.js"></script>
  30. <script type="text/javascript">
  31. $(function() {
  32. // setup plot
  33. function getData(x1, x2) {
  34. var d = [];
  35. for (var i = 0; i <= 100; ++i) {
  36. var x = x1 + i * (x2 - x1) / 100;
  37. d.push([x, Math.sin(x * Math.sin(x))]);
  38. }
  39. return [
  40. { label: "sin(x sin(x))", data: d }
  41. ];
  42. }
  43. var options = {
  44. legend: {
  45. show: false
  46. },
  47. series: {
  48. lines: {
  49. show: true
  50. },
  51. points: {
  52. show: true
  53. }
  54. },
  55. xaxis: {
  56. autoScale: "none"
  57. },
  58. yaxis: {
  59. autoScale:"none",
  60. ticks: 10
  61. },
  62. selection: {
  63. mode: "xy"
  64. }
  65. };
  66. var startData = getData(0, 3 * Math.PI);
  67. var plot = $.plot("#placeholder", startData, options);
  68. // Create the overview plot
  69. var overview = $.plot("#overview", startData, {
  70. legend: {
  71. show: false
  72. },
  73. series: {
  74. lines: {
  75. show: true,
  76. lineWidth: 1
  77. },
  78. shadowSize: 0
  79. },
  80. xaxis: {
  81. autoScale: "none",
  82. ticks: 4
  83. },
  84. yaxis: {
  85. autoScale: "none",
  86. ticks: 3,
  87. min: -2,
  88. max: 2
  89. },
  90. grid: {
  91. color: "#999"
  92. },
  93. selection: {
  94. mode: "xy"
  95. }
  96. });
  97. // now connect the two
  98. $("#placeholder").bind("plotselected", function (event, ranges) {
  99. // clamp the zooming to prevent eternal zoom
  100. if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) {
  101. ranges.xaxis.to = ranges.xaxis.from + 0.00001;
  102. }
  103. if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) {
  104. ranges.yaxis.to = ranges.yaxis.from + 0.00001;
  105. }
  106. // do the zooming
  107. plot = $.plot("#placeholder", getData(ranges.xaxis.from, ranges.xaxis.to),
  108. $.extend(true, {}, options, {
  109. xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
  110. yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
  111. })
  112. );
  113. // don't fire event on the overview to prevent eternal loop
  114. overview.setSelection(ranges, true);
  115. });
  116. $("#overview").bind("plotselected", function (event, ranges) {
  117. plot.setSelection(ranges);
  118. });
  119. // Add the Flot version string to the footer
  120. $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");
  121. });
  122. </script>
  123. </head>
  124. <body>
  125. <div id="header">
  126. <h2>Selection and zooming</h2>
  127. </div>
  128. <div id="content">
  129. <div class="demo-container">
  130. <div id="placeholder" class="demo-placeholder" style="float:left; width:650px;"></div>
  131. <div id="overview" class="demo-placeholder" style="float:right;width:160px; height:125px;"></div>
  132. </div>
  133. <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>
  134. </div>
  135. <div id="footer">
  136. Copyright &copy; 2007 - 2014 IOLA and Ole Laursen
  137. </div>
  138. </body>
  139. </html>