data-renderers.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>AJAX and JSON Data Loading via Data Renderers</title>
  5. <link class="include" rel="stylesheet" type="text/css" href="../jquery.jqplot.min.css" />
  6. <link rel="stylesheet" type="text/css" href="examples.min.css" />
  7. <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shCoreDefault.min.css" />
  8. <link type="text/css" rel="stylesheet" href="syntaxhighlighter/styles/shThemejqPlot.min.css" />
  9. <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="../excanvas.js"></script><![endif]-->
  10. <script class="include" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  11. </head>
  12. <body>
  13. <div id="header">
  14. <div class="nav">
  15. <a class="nav" href="../../../index.php"><span>&gt;</span>Home</a>
  16. <a class="nav" href="../../../docs/"><span>&gt;</span>Docs</a>
  17. <a class="nav" href="../../download/"><span>&gt;</span>Download</a>
  18. <a class="nav" href="../../../info.php"><span>&gt;</span>Info</a>
  19. <a class="nav" href="../../../donate.php"><span>&gt;</span>Donate</a>
  20. </div>
  21. </div>
  22. <div class="colmask leftmenu">
  23. <div class="colleft">
  24. <div class="col1" id="example-content">
  25. <!-- Example scripts go here -->
  26. <p>Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call). Simply assign the external source to the "dataRenderer" plot option. The only requirement on data renderers is that it must return a valid jqPlot data array.</p>
  27. <div id="chart1" style="height:300px; width:500px;"></div>
  28. <pre class="code prettyprint brush: js"></pre>
  29. <p>Data renderers get passed options by the plot. The signiture for a data renderer is:</p>
  30. <pre class="brush: js">
  31. function(userData, plotObject, options) {
  32. ...
  33. return data;
  34. }
  35. </pre>
  36. <p>Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option. The following example shows a more complicated example which uses ajax pulls data from an external json data source.</p>
  37. <div id="chart2" style="height:300px; width:500px;"></div>
  38. <pre class="code prettyprint brush: js"></pre>
  39. <script class="code" type="text/javascript">
  40. $(document).ready(function(){
  41. // Our data renderer function, returns an array of the form:
  42. // [[[x1, sin(x1)], [x2, sin(x2)], ...]]
  43. var sineRenderer = function() {
  44. var data = [[]];
  45. for (var i=0; i<13; i+=0.5) {
  46. data[0].push([i, Math.sin(i)]);
  47. }
  48. return data;
  49. };
  50. // we have an empty data array here, but use the "dataRenderer"
  51. // option to tell the plot to get data from our renderer.
  52. var plot1 = $.jqplot('chart1',[],{
  53. title: 'Sine Data Renderer',
  54. dataRenderer: sineRenderer
  55. });
  56. });
  57. </script>
  58. <script class="code" type="text/javascript">
  59. $(document).ready(function(){
  60. // Our ajax data renderer which here retrieves a text file.
  61. // it could contact any source and pull data, however.
  62. // The options argument isn't used in this renderer.
  63. var ajaxDataRenderer = function(url, plot, options) {
  64. var ret = null;
  65. $.ajax({
  66. // have to use synchronous here, else the function
  67. // will return before the data is fetched
  68. async: false,
  69. url: url,
  70. dataType:"json",
  71. success: function(data) {
  72. ret = data;
  73. }
  74. });
  75. return ret;
  76. };
  77. // The url for our json data
  78. var jsonurl = "./jsondata.txt";
  79. // passing in the url string as the jqPlot data argument is a handy
  80. // shortcut for our renderer. You could also have used the
  81. // "dataRendererOptions" option to pass in the url.
  82. var plot2 = $.jqplot('chart2', jsonurl,{
  83. title: "AJAX JSON Data Renderer",
  84. dataRenderer: ajaxDataRenderer,
  85. dataRendererOptions: {
  86. unusedOptionalUrl: jsonurl
  87. }
  88. });
  89. });
  90. </script>
  91. <!-- End example scripts -->
  92. <!-- Don't touch this! -->
  93. <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
  94. <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
  95. <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
  96. <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
  97. <!-- End Don't touch this! -->
  98. <!-- Additional plugins go here -->
  99. <script class="include" language="javascript" type="text/javascript" src="../plugins/jqplot.json2.min.js"></script>
  100. <!-- End additional plugins -->
  101. </div>
  102. <div class="col2">
  103. <div class="example-link"><a class="example-link" href="data-renderers.html">AJAX and JSON Data Loading via Data Renderers</a></div>
  104. <div class="example-link"><a class="example-link" href="barLineAnimated.html">Animated Charts</a></div>
  105. <div class="example-link"><a class="example-link" href="dashboardWidget.html">Animated Dashboard Sample - Filled Line with Log Axis</a></div>
  106. <div class="example-link"><a class="example-link" href="kcp_area.html">Area Chart</a></div>
  107. <div class="example-link"><a class="example-link" href="kcp_area2.html">Area Chart 2</a></div>
  108. <div class="example-link"><a class="example-link" href="axisLabelTests.html">Axis Labels</a></div>
  109. <div class="example-link"><a class="example-link" href="axisLabelsRotatedText.html">Axis Labels and Rotated Text</a></div>
  110. <div class="example-link"><a class="example-link" href="barTest.html">Bar Charts</a></div>
  111. <div class="example-link"><a class="example-link" href="multipleBarColors.html">Bar Colors Example</a></div>
  112. <div class="example-link"><a class="example-link" href="bezierCurve.html">Bezier Curve Plots</a></div>
  113. <div class="example-link"><a class="example-link" href="blockPlot.html">Block Plots</a></div>
  114. <div class="example-link"><a class="example-link" href="bubbleChart.html">Bubble Charts</a></div>
  115. <div class="example-link"><a class="example-link" href="bubble-plots.html">Bubble Plots</a></div>
  116. <div class="example-link"><a class="example-link" href="candlestick.html">Candlestick and Open Hi Low Close Charts</a></div>
  117. <div class="example-link"><a class="example-link" href="theming.html">Chart Theming</a></div>
  118. <div class="example-link"><a class="example-link" href="fillBetweenLines.html">Charts with Fill Between Lines</a></div>
  119. <div class="example-link"><a class="example-link" href="kcp_cdf.html">Cumulative Density Function Chart</a></div>
  120. <div class="example-link"><a class="example-link" href="dashedLines.html">Dashed Lines with Smoothing</a></div>
  121. <div class="example-link"><a class="example-link" href="cursor-highlighter.html">Data Point Highlighting, Tooltips and Cursor Tracking</a></div>
  122. <div class="example-link"><a class="example-link" href="point-labels.html">Data Point labels</a></div>
  123. <div class="example-link"><a class="example-link" href="date-axes.html">Date Axes</a></div>
  124. <div class="example-link"><a class="example-link" href="dateAxisRenderer.html">Date Axes 2</a></div>
  125. <div class="example-link"><a class="example-link" href="rotatedTickLabelsZoom.html">Date Axes, Rotated Labels and Zooming</a></div>
  126. <div class="example-link"><a class="example-link" href="canvas-overlay.html">Draw Lines on Plots - Canvas Overlay</a></div>
  127. <div class="example-link"><a class="example-link" href="draw-rectangles.html">Draw Rectangles on Plots</a></div>
  128. <div class="example-link"><a class="example-link" href="kcp_engel.html">Engel Curves</a></div>
  129. <div class="example-link"><a class="example-link" href="bandedLine.html">Error Bands and Confidence Intervals</a></div>
  130. <div class="example-link"><a class="example-link" href="area.html">Filled (Area) Charts</a></div>
  131. <div class="example-link"><a class="example-link" href="axisScalingForceTickAt.html">Force Plot to Have Tick at 0 or 100</a></div>
  132. <div class="example-link"><a class="example-link" href="hiddenPlotsInTabs.html">Hidden Plots</a></div>
  133. <div class="example-link"><a class="example-link" href="customHighlighterCursorTrendline.html">Highlighting, Dragging Points, Cursor and Trend Lines</a></div>
  134. <div class="example-link"><a class="example-link" href="line-charts.html">Line Charts and Options</a></div>
  135. <div class="example-link"><a class="example-link" href="kcp_lorenz.html">Lorenz Curves</a></div>
  136. <div class="example-link"><a class="example-link" href="mekkoCharts.html">Mekko Charts</a></div>
  137. <div class="example-link"><a class="example-link" href="meterGauge.html">Meter Gauge</a></div>
  138. <div class="example-link"><a class="example-link" href="candlestick-charts.html">Open Hi Low Close and Candlestick Charts</a></div>
  139. <div class="example-link"><a class="example-link" href="pieTest.html">Pie Charts and Options</a></div>
  140. <div class="example-link"><a class="example-link" href="pieTest4.html">Pie Charts and Options 2</a></div>
  141. <div class="example-link"><a class="example-link" href="pie-donut-charts.html">Pie and Donut Charts</a></div>
  142. <div class="example-link"><a class="example-link" href="selectorSyntax.html">Plot Creation with jQuery Selectors</a></div>
  143. <div class="example-link"><a class="example-link" href="zooming.html">Plot Zooming and Cursor Control</a></div>
  144. <div class="example-link"><a class="example-link" href="kcp_pdf.html">Probability Density Function Chart</a></div>
  145. <div class="example-link"><a class="example-link" href="kcp_pyramid_by_age.html">Pyramid Chart By Age</a></div>
  146. <div class="example-link"><a class="example-link" href="kcp_pyramid.html">Pyramid Charts</a></div>
  147. <div class="example-link"><a class="example-link" href="kcp_pyramid2.html">Pyramid Charts 2</a></div>
  148. <div class="example-link"><a class="example-link" href="kcp_quintiles.html">Quintile Pyramid Charts</a></div>
  149. <div class="example-link"><a class="example-link" href="resizablePlot.html">Resizable Plots</a></div>
  150. <div class="example-link"><a class="example-link" href="rotated-tick-labels.html">Rotated Labels and Font Styling</a></div>
  151. <div class="example-link"><a class="example-link" href="smoothedLine.html">Smoothed Lines</a></div>
  152. <div class="example-link"><a class="example-link" href="bar-charts.html">Vertical and Horizontal Bar Charts</a></div>
  153. <div class="example-link"><a class="example-link" href="waterfall.html">Waterfall Charts</a></div>
  154. <div class="example-link"><a class="example-link" href="waterfall2.html">Waterfall Charts 2</a></div>
  155. <div class="example-link"><a class="example-link" href="zoomOptions.html">Zoom Options</a></div>
  156. <div class="example-link"><a class="example-link" href="zoomProxy.html">Zoom Proxy - Control one plot from another</a></div>
  157. <div class="example-link"><a class="example-link" href="zoom1.html">Zooming</a></div>
  158. <div class="example-link"><a class="example-link" href="dateAxisLogAxisZooming.html">Zooming with Date and Log Axes</a></div>
  159. </div>
  160. </div>
  161. </div>
  162. <script type="text/javascript" src="example.min.js"></script>
  163. </body>
  164. </html>