kcp_pyramid2.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Pyramid Charts 2</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. <link class="include" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/themes/smoothness/jquery-ui.css" rel="Stylesheet" />
  27. <style type="text/css">
  28. .chart-container {
  29. border: 1px solid darkblue;
  30. padding: 30px;
  31. width: 600px;
  32. height: 700px;
  33. }
  34. #chart1 {
  35. width: 96%;
  36. height: 96%;
  37. }
  38. .jqplot-datestamp {
  39. font-size: 0.8em;
  40. color: #777;
  41. /* margin-top: 1em;
  42. text-align: right;*/
  43. font-style: italic;
  44. position: absolute;
  45. bottom: 15px;
  46. right: 15px;
  47. }
  48. td.controls li {
  49. list-style-type: none;
  50. }
  51. td.controls ul {
  52. margin-top: 0.5em;
  53. padding-left: 0.2em;
  54. }
  55. pre.code {
  56. margin-top: 45px;
  57. clear: both;
  58. }
  59. </style>
  60. <table class="app">
  61. <td class="controls">
  62. <div style="margin-bottom: 15px;">
  63. Axes:
  64. <select name="axisPosition">
  65. <option value="both">Left &amp; Right</option>
  66. <option value = "left">Left</option>
  67. <option value = "right">Right</option>
  68. <option value = "mid">Mid</option>
  69. </select>
  70. </div>
  71. <div>
  72. Background Color:
  73. <ul>
  74. <li><input name="backgroundColor" value="white" type="radio" checked />Default</li>
  75. <li><input name="backgroundColor" value="#efefef" type="radio" />Gray</li>
  76. </ul>
  77. </div>
  78. <div>
  79. Pyramid Color:
  80. <ul>
  81. <li><input name="seriesColor" value="green" type="radio" checked />Green</li>
  82. <li><input name="seriesColor" value="blue" type="radio" />Blue</li>
  83. </ul>
  84. </div>
  85. <div>
  86. Grids:
  87. <ul>
  88. <li><input name="gridsVertical" value="vertical" type="checkbox" checked />Vertical</li>
  89. <li><input name="gridsHorizontal" value="horizontal" type="checkbox" checked />Horizontal</li>
  90. <li><input name="showMinorTicks" value="true" type="checkbox" />Only major</li>
  91. <li><input name="plotBands" value="true" type="checkbox" />Plot Bands</li>
  92. </ul>
  93. </div>
  94. <div>
  95. <ul>
  96. <li><input name="barPadding" value="4" type="checkbox" checked />Gap between bars</li>
  97. <!-- value for showContour is speed at which to fade lines in/out -->
  98. <li><input name="showContour" value="500" type="checkbox" />Comparison Line</li>
  99. </ul>
  100. </div>
  101. <div class="tooltip">
  102. <table>
  103. <tr>
  104. <td>Age: </td><td><div class="tooltip-item" id="tooltipAge">&nbsp;</div></td>
  105. </tr>
  106. <tr>
  107. <td>Male: </td><td><div class="tooltip-item" id="tooltipMale">&nbsp;</div></td>
  108. </tr>
  109. <tr>
  110. <td>Female: </td><td><div class="tooltip-item" id="tooltipFemale">&nbsp;</div></td>
  111. </tr>
  112. <tr>
  113. <td>Ratio: </td><td><div class="tooltip-item" id="tooltipRatio">&nbsp;</div></td>
  114. </tr>
  115. </table>
  116. </div>
  117. </td>
  118. <td class="chart">
  119. <div class="chart-container">
  120. <div id="chart1"></div>
  121. <div class="jqplot-datestamp"></div>
  122. </div>
  123. </td>
  124. </table>
  125. <pre class="code brush:js"></pre>
  126. <script class="code" type="text/javascript" language="javascript">
  127. $(document).ready(function(){
  128. // the "x" values from the data will go into the ticks array.
  129. // ticks should be strings for this case where we have values like "75+"
  130. var ticks = ["0-4", "5-9", "10-14", "15-19", "20-24", "25-29", "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74", "75+"];
  131. // The "y" values of the data are put into seperate series arrays.
  132. var male = [4.425251, 5.064975, 4.401382, 3.787731, 2.306403, 3.110203, 2.824716, 3.846422, 3.067799, 2.936013, 2.505067, 2.018346, 1.90446, 1.357237, 0.909704, 0.988836];
  133. var female = [4.28698, 4.343237, 4.710053, 3.99281, 2.811107, 3.191518, 4.855351, 4.62347, 4.032976, 4.414623, 3.210845, 2.426347, 2.635736, 1.811459, 1.515899, 1.683044];
  134. var male2 = [1.445677, 2.088224, 2.159879, 2.401152, 3.701622, 3.897444, 5.048783, 4.367545, 3.304588, 3.784367, 3.059088, 2.052513, 1.412907, 0.934326, 0.541234, 0.784258];
  135. var female2 =[2.238284, 2.974165, 2.360351, 3.03517, 4.80941, 6.229139, 7.257596, 5.847782, 5.226342, 6.201237, 4.474141, 2.769444, 2.048169, 1.47749, 0.87372, 1.193951];
  136. // Custom color arrays are set up for each series to get the look that is desired.
  137. // Two color arrays are created for the default and optional color which the user can pick.
  138. var greenColors = ["#526D2C", "#77933C", "#C57225", "#C57225"];
  139. var blueColors = ["#3F7492", "#4F9AB8", "#C57225", "#C57225"];
  140. // To accomodate changing y axis, need to keep track of plot options.
  141. // changing axes will require recreating the plot, so need to keep
  142. // track of state changes.
  143. var plotOptions = {
  144. // We set up a customized title which acts as labels for the left and right sides of the pyramid.
  145. title: '<div style="float:left;width:50%;text-align:center">Male</div><div style="float:right;width:50%;text-align:center">Female</div>',
  146. // by default, the series will use the green color scheme.
  147. seriesColors: greenColors,
  148. grid: {
  149. drawBorder: false,
  150. shadow: false,
  151. background: "white",
  152. rendererOptions: {
  153. // plotBands is an option of the pyramidGridRenderer.
  154. // it will put banding at starting at a specified value
  155. // along the y axis with an adjustable interval.
  156. plotBands: {
  157. show: false,
  158. interval: 2
  159. }
  160. },
  161. },
  162. // This makes the effective starting value of the axes 0 instead of 1.
  163. // For display, the y axis will use the ticks we supplied.
  164. defaultAxisStart: 0,
  165. seriesDefaults: {
  166. renderer: $.jqplot.PyramidRenderer,
  167. rendererOptions: {
  168. barPadding: 4
  169. },
  170. yaxis: "yaxis",
  171. shadow: false
  172. },
  173. // We have 4 series, the left and right pyramid bars and
  174. // the left and rigt overlay lines.
  175. series: [
  176. // For pyramid plots, the default side is right.
  177. // We want to override here to put first set of bars
  178. // on left.
  179. {
  180. rendererOptions:{
  181. side: 'left',
  182. synchronizeHighlight: 1
  183. }
  184. },
  185. {
  186. yaxis: "y2axis",
  187. rendererOptions:{
  188. synchronizeHighlight: 0
  189. }
  190. },
  191. // Pyramid series are filled bars by default.
  192. // The overlay series will be unfilled lines.
  193. {
  194. rendererOptions: {
  195. fill: false,
  196. side: "left"
  197. }
  198. },
  199. {
  200. yaxis: "y2axis",
  201. rendererOptions: {
  202. fill: false
  203. }
  204. }
  205. ],
  206. // Set up all the y axes, since users are allowed to switch between them.
  207. // The only axis that will show is the one that the series are "attached" to.
  208. // We need the appropriate options for the others for when the user switches.
  209. axes: {
  210. xaxis: {
  211. tickOptions: {},
  212. rendererOptions: {
  213. baselineWidth: 2
  214. }
  215. },
  216. yaxis: {
  217. label: "Age",
  218. // Use canvas label renderer to get rotated labels.
  219. labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
  220. // include empty tick options, they will be used
  221. // as users set options with plot controls.
  222. tickOptions: {},
  223. showMinorTicks: true,
  224. ticks: ticks,
  225. rendererOptions: {
  226. category: true,
  227. baselineWidth: 2
  228. }
  229. },
  230. yMidAxis: {
  231. label: "Age",
  232. // include empty tick options, they will be used
  233. // as users set options with plot controls.
  234. tickOptions: {},
  235. showMinorTicks: true,
  236. ticks: ticks,
  237. rendererOptions: {
  238. category: true,
  239. baselineWidth: 2
  240. }
  241. },
  242. y2axis: {
  243. label: "Age",
  244. // Use canvas label renderer to get rotated labels.
  245. labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
  246. // include empty tick options, they will be used
  247. // as users set options with plot controls.
  248. tickOptions: {},
  249. showMinorTicks: true,
  250. ticks: ticks,
  251. rendererOptions: {
  252. category: true,
  253. baselineWidth: 2
  254. }
  255. }
  256. }
  257. };
  258. // initialize form elements
  259. // set these before attaching event handlers.
  260. $("input[type=checkbox][name=gridsVertical]").attr("checked", true);
  261. $("input[type=checkbox][name=gridsHorizontal]").attr("checked", true);
  262. $("input[type=checkbox][name=showMinorTicks]").attr("checked", false);
  263. $("input[type=checkbox][name=plotBands]").attr("checked", false);
  264. $("input[type=checkbox][name=showContour]").attr("checked", true);
  265. $("input[type=checkbox][name=barPadding]").attr("checked", true);
  266. $("select[name=axisPosition]").val("both");
  267. $("input[type=radio][name=backgroundColor]").attr("checked", false);
  268. $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
  269. $("input[type=radio][name=backgroundColor]").attr("checked", false);
  270. $("input[type=radio][name=backgroundColor][value=white]").attr("checked", true);
  271. $("input[type=radio][name=seriesColor]").attr("checked", false);
  272. $("input[type=radio][name=seriesColor][value=green]").attr("checked", true);
  273. plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
  274. // After plot creation, check to see if contours should be displayed
  275. checkContour();
  276. //////
  277. // The followng functions use verbose css selectors to make
  278. // it clear exactly which elements they are binging to/operating on
  279. //////
  280. //////
  281. // Function which checkes if the countour lines checkbox is checked.
  282. // If not, hide the contour lines.
  283. //////
  284. function checkContour() {
  285. if (!$("input[type=checkbox][name=showContour]").get(0).checked) {
  286. plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
  287. plot1.series[2].canvas._elem.hide();
  288. plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
  289. plot1.series[3].canvas._elem.hide();
  290. }
  291. }
  292. $("select[name=axisPosition]").change(function(){
  293. // this refers to the html element we are binding to.
  294. // $(this) is jQuery object on that element.
  295. switch ($(this).val()) {
  296. case "both":
  297. plotOptions.series[0].yaxis = "yaxis";
  298. plotOptions.series[1].yaxis = "y2axis";
  299. plotOptions.series[2].yaxis = "yaxis";
  300. plotOptions.series[3].yaxis = "y2axis";
  301. break;
  302. case "left":
  303. plotOptions.series[0].yaxis = "yaxis";
  304. plotOptions.series[1].yaxis = "yaxis";
  305. plotOptions.series[2].yaxis = "yaxis";
  306. plotOptions.series[3].yaxis = "yaxis";
  307. break;
  308. case "right":
  309. plotOptions.series[0].yaxis = "y2axis";
  310. plotOptions.series[1].yaxis = "y2axis";
  311. plotOptions.series[2].yaxis = "y2axis";
  312. plotOptions.series[3].yaxis = "y2axis";
  313. break;
  314. case "mid":
  315. plotOptions.series[0].yaxis = "yMidAxis";
  316. plotOptions.series[1].yaxis = "yMidAxis";
  317. plotOptions.series[2].yaxis = "yMidAxis";
  318. plotOptions.series[3].yaxis = "yMidAxis";
  319. break;
  320. default:
  321. break;
  322. }
  323. plot1.destroy();
  324. plot1 = $.jqplot("chart1", [male, female, male2, female2], plotOptions);
  325. // Finally, check to see if we need to hide contour lines.
  326. checkContour();
  327. });
  328. $("input[type=radio][name=backgroundColor]").change(function(){
  329. // this refers to the html element we are binding to.
  330. // $(this) is jQuery object on that element.
  331. plot1.grid.background = $(this).val();
  332. plotOptions.grid.background = $(this).val();
  333. plot1.replot();
  334. // Finally, check to see if we need to hide contour lines.
  335. checkContour();
  336. });
  337. $("input[type=radio][name=seriesColor]").change(function(){
  338. // this refers to the html element we are binding to.
  339. // $(this) is jQuery object on that element.
  340. if ($(this).val() === "blue") {
  341. // reset highlight colors so they will be recalculated.
  342. plot1.series[0].highlightColors = [];
  343. plot1.series[1].highlightColors = [];
  344. // reset series color to properly calculate highlight color.
  345. plot1.series[0].color = blueColors[0];
  346. plot1.series[1].color = blueColors[1];
  347. // to actually draw a new color, have to set the color on the shaperenderer.
  348. plot1.series[0].renderer.shapeRenderer.fillStyle = blueColors[0];
  349. plot1.series[1].renderer.shapeRenderer.fillStyle = blueColors[1];
  350. // update plot options state.
  351. plotOptions.seriesColors = blueColors;
  352. }
  353. else if ($(this).val() === "green") {
  354. // reset highlight colors so they will be recalculated.
  355. plot1.series[0].highlightColors = [];
  356. plot1.series[1].highlightColors = [];
  357. // reset series color to properly calculate highlight color.
  358. plot1.series[0].color = greenColors[0];
  359. plot1.series[1].color = greenColors[1];
  360. // to actually draw a new color, have to set the color on the shaperenderer.
  361. plot1.series[0].renderer.shapeRenderer.fillStyle = greenColors[0];
  362. plot1.series[1].renderer.shapeRenderer.fillStyle = greenColors[1];
  363. // update plot options state.
  364. plotOptions.seriesColors = blueColors;
  365. }
  366. plot1.replot();
  367. // Finally, check to see if we need to hide contour lines.
  368. checkContour();
  369. });
  370. $("input[type=checkbox][name=gridsVertical]").change(function(){
  371. // this refers to the html element we are binding to.
  372. // $(this) is jQuery object on that element.
  373. plot1.axes.xaxis.tickOptions.showGridline = this.checked;
  374. plotOptions.axes.xaxis.tickOptions.showGridline = this.checked;
  375. plot1.replot();
  376. // Finally, check to see if we need to hide contour lines.
  377. checkContour();
  378. });
  379. $("input[type=checkbox][name=gridsHorizontal]").change(function(){
  380. // this refers to the html element we are binding to.
  381. // $(this) is jQuery object on that element.
  382. plot1.axes.yaxis.tickOptions.showGridline = this.checked;
  383. plot1.axes.y2axis.tickOptions.showGridline = this.checked;
  384. plot1.axes.yMidAxis.tickOptions.showGridline = this.checked;
  385. plotOptions.axes.yaxis.tickOptions.showGridline = this.checked;
  386. plotOptions.axes.y2axis.tickOptions.showGridline = this.checked;
  387. plotOptions.axes.yMidAxis.tickOptions.showGridline = this.checked;
  388. plot1.replot();
  389. // Finally, check to see if we need to hide contour lines.
  390. checkContour();
  391. });
  392. $("input[type=checkbox][name=showMinorTicks]").change(function(){
  393. // this refers to the html element we are binding to.
  394. // $(this) is jQuery object on that element.
  395. plot1.axes.yaxis.showMinorTicks = !this.checked;
  396. plot1.axes.y2axis.showMinorTicks = !this.checked;
  397. plot1.axes.yMidAxis.showMinorTicks = !this.checked;
  398. plotOptions.axes.yaxis.showMinorTicks = !this.checked;
  399. plotOptions.axes.y2axis.showMinorTicks = !this.checked;
  400. plotOptions.axes.yMidAxis.showMinorTicks = !this.checked;
  401. plot1.replot();
  402. // Finally, check to see if we need to hide contour lines.
  403. checkContour();
  404. });
  405. $("input[type=checkbox][name=plotBands]").change(function(){
  406. // this refers to the html element we are binding to.
  407. // $(this) is jQuery object on that element.
  408. plot1.grid.plotBands.show = this.checked;
  409. plotOptions.grid.rendererOptions.plotBands.show = this.checked;
  410. plot1.replot();
  411. // Finally, check to see if we need to hide contour lines.
  412. checkContour();
  413. });
  414. $("input[type=checkbox][name=showContour]").change(function(){
  415. // this refers to the html element we are binding to.
  416. // $(this) is jQuery object on that element.
  417. var speed = $(this).val();
  418. if (this.checked) {
  419. plot1.series[2].canvas._elem.removeClass("jqplot-series-hidden");
  420. plot1.series[2].canvas._elem.fadeIn(speed);
  421. plot1.series[3].canvas._elem.removeClass("jqplot-series-hidden");
  422. plot1.series[3].canvas._elem.fadeIn(speed);
  423. }
  424. else {
  425. plot1.series[2].canvas._elem.addClass("jqplot-series-hidden");
  426. plot1.series[2].canvas._elem.fadeOut(speed);
  427. plot1.series[3].canvas._elem.addClass("jqplot-series-hidden");
  428. plot1.series[3].canvas._elem.fadeOut(speed);
  429. }
  430. });
  431. $("input[type=checkbox][name=barPadding]").change(function(){
  432. // this refers to the html element we are binding to.
  433. // $(this) is jQuery object on that element.
  434. if (this.checked) {
  435. var val = parseFloat($(this).val());
  436. plot1.series[0].barPadding = val;
  437. plot1.series[1].barPadding = val;
  438. plotOptions.seriesDefaults.rendererOptions.barPadding = val;
  439. }
  440. else {
  441. plot1.series[0].barPadding = 0;
  442. plot1.series[1].barPadding = 0;
  443. plotOptions.seriesDefaults.rendererOptions.barPadding = 0;
  444. }
  445. plot1.replot();
  446. // Finally, check to see if we need to hide contour lines.
  447. checkContour();
  448. });
  449. // bind to the data highlighting event to make custom tooltip:
  450. $(".jqplot-target").bind("jqplotDataHighlight", function(evt, seriesIndex, pointIndex, data) {
  451. // Here, assume first series is male poulation and second series is female population.
  452. // Adjust series indices as appropriate.
  453. var malePopulation = Math.abs(plot1.series[0].data[pointIndex][1]);
  454. var femalePopulation = Math.abs(plot1.series[1].data[pointIndex][1]);
  455. var ratio = femalePopulation / malePopulation * 100;
  456. $("#tooltipMale").stop(true, true).fadeIn(250).html(malePopulation.toPrecision(4));
  457. $("#tooltipFemale").stop(true, true).fadeIn(250).html(femalePopulation.toPrecision(4));
  458. $("#tooltipRatio").stop(true, true).fadeIn(250).html(ratio.toPrecision(4));
  459. // Since we don't know which axis is rendererd and acive with out a little extra work,
  460. // just use the supplied ticks array to get the age label.
  461. $("#tooltipAge").stop(true, true).fadeIn(250).html(ticks[pointIndex]);
  462. });
  463. // bind to the data highlighting event to make custom tooltip:
  464. $(".jqplot-target").bind("jqplotDataUnhighlight", function(evt, seriesIndex, pointIndex, data) {
  465. // clear out all the tooltips.
  466. $(".tooltip-item").stop(true, true).fadeOut(200).html('');
  467. });
  468. // add a date at the bottom.
  469. var d = new $.jsDate();
  470. $("div.jqplot-datestamp").html("Generated on "+d.strftime("%v"));
  471. $("div.chart-container").resizable({delay:20});
  472. $("div.chart-container").bind("resize", function(event, ui) {
  473. plot1.replot();
  474. });
  475. });
  476. </script>
  477. <!-- End example scripts -->
  478. <!-- Don't touch this! -->
  479. <script class="include" type="text/javascript" src="../jquery.jqplot.min.js"></script>
  480. <script type="text/javascript" src="syntaxhighlighter/scripts/shCore.min.js"></script>
  481. <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushJScript.min.js"></script>
  482. <script type="text/javascript" src="syntaxhighlighter/scripts/shBrushXml.min.js"></script>
  483. <!-- End Don't touch this! -->
  484. <!-- Additional plugins go here -->
  485. <script class="include" type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js"></script>
  486. <!-- load the pyramidAxis and Grid renderers in production. pyramidRenderer will try to load via ajax if not present, but that is not optimal and depends on paths being set. -->
  487. <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidAxisRenderer.min.js"></script>
  488. <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidGridRenderer.min.js"></script>
  489. <script class="include" type="text/javascript" src="../plugins/jqplot.pyramidRenderer.min.js"></script>
  490. <script class="include" type="text/javascript" src="../plugins/jqplot.canvasTextRenderer.min.js"></script>
  491. <script class="include" type="text/javascript" src="../plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
  492. <script class="include" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script>
  493. <!-- End additional plugins -->
  494. </div>
  495. <div class="col2">
  496. <div class="example-link"><a class="example-link" href="data-renderers.html">AJAX and JSON Data Loading via Data Renderers</a></div>
  497. <div class="example-link"><a class="example-link" href="barLineAnimated.html">Animated Charts</a></div>
  498. <div class="example-link"><a class="example-link" href="dashboardWidget.html">Animated Dashboard Sample - Filled Line with Log Axis</a></div>
  499. <div class="example-link"><a class="example-link" href="kcp_area.html">Area Chart</a></div>
  500. <div class="example-link"><a class="example-link" href="kcp_area2.html">Area Chart 2</a></div>
  501. <div class="example-link"><a class="example-link" href="axisLabelTests.html">Axis Labels</a></div>
  502. <div class="example-link"><a class="example-link" href="axisLabelsRotatedText.html">Axis Labels and Rotated Text</a></div>
  503. <div class="example-link"><a class="example-link" href="barTest.html">Bar Charts</a></div>
  504. <div class="example-link"><a class="example-link" href="multipleBarColors.html">Bar Colors Example</a></div>
  505. <div class="example-link"><a class="example-link" href="bezierCurve.html">Bezier Curve Plots</a></div>
  506. <div class="example-link"><a class="example-link" href="blockPlot.html">Block Plots</a></div>
  507. <div class="example-link"><a class="example-link" href="bubbleChart.html">Bubble Charts</a></div>
  508. <div class="example-link"><a class="example-link" href="bubble-plots.html">Bubble Plots</a></div>
  509. <div class="example-link"><a class="example-link" href="candlestick.html">Candlestick and Open Hi Low Close Charts</a></div>
  510. <div class="example-link"><a class="example-link" href="theming.html">Chart Theming</a></div>
  511. <div class="example-link"><a class="example-link" href="fillBetweenLines.html">Charts with Fill Between Lines</a></div>
  512. <div class="example-link"><a class="example-link" href="kcp_cdf.html">Cumulative Density Function Chart</a></div>
  513. <div class="example-link"><a class="example-link" href="dashedLines.html">Dashed Lines with Smoothing</a></div>
  514. <div class="example-link"><a class="example-link" href="cursor-highlighter.html">Data Point Highlighting, Tooltips and Cursor Tracking</a></div>
  515. <div class="example-link"><a class="example-link" href="point-labels.html">Data Point labels</a></div>
  516. <div class="example-link"><a class="example-link" href="date-axes.html">Date Axes</a></div>
  517. <div class="example-link"><a class="example-link" href="dateAxisRenderer.html">Date Axes 2</a></div>
  518. <div class="example-link"><a class="example-link" href="rotatedTickLabelsZoom.html">Date Axes, Rotated Labels and Zooming</a></div>
  519. <div class="example-link"><a class="example-link" href="canvas-overlay.html">Draw Lines on Plots - Canvas Overlay</a></div>
  520. <div class="example-link"><a class="example-link" href="draw-rectangles.html">Draw Rectangles on Plots</a></div>
  521. <div class="example-link"><a class="example-link" href="kcp_engel.html">Engel Curves</a></div>
  522. <div class="example-link"><a class="example-link" href="bandedLine.html">Error Bands and Confidence Intervals</a></div>
  523. <div class="example-link"><a class="example-link" href="area.html">Filled (Area) Charts</a></div>
  524. <div class="example-link"><a class="example-link" href="axisScalingForceTickAt.html">Force Plot to Have Tick at 0 or 100</a></div>
  525. <div class="example-link"><a class="example-link" href="hiddenPlotsInTabs.html">Hidden Plots</a></div>
  526. <div class="example-link"><a class="example-link" href="customHighlighterCursorTrendline.html">Highlighting, Dragging Points, Cursor and Trend Lines</a></div>
  527. <div class="example-link"><a class="example-link" href="line-charts.html">Line Charts and Options</a></div>
  528. <div class="example-link"><a class="example-link" href="kcp_lorenz.html">Lorenz Curves</a></div>
  529. <div class="example-link"><a class="example-link" href="mekkoCharts.html">Mekko Charts</a></div>
  530. <div class="example-link"><a class="example-link" href="meterGauge.html">Meter Gauge</a></div>
  531. <div class="example-link"><a class="example-link" href="candlestick-charts.html">Open Hi Low Close and Candlestick Charts</a></div>
  532. <div class="example-link"><a class="example-link" href="pieTest.html">Pie Charts and Options</a></div>
  533. <div class="example-link"><a class="example-link" href="pieTest4.html">Pie Charts and Options 2</a></div>
  534. <div class="example-link"><a class="example-link" href="pie-donut-charts.html">Pie and Donut Charts</a></div>
  535. <div class="example-link"><a class="example-link" href="selectorSyntax.html">Plot Creation with jQuery Selectors</a></div>
  536. <div class="example-link"><a class="example-link" href="zooming.html">Plot Zooming and Cursor Control</a></div>
  537. <div class="example-link"><a class="example-link" href="kcp_pdf.html">Probability Density Function Chart</a></div>
  538. <div class="example-link"><a class="example-link" href="kcp_pyramid_by_age.html">Pyramid Chart By Age</a></div>
  539. <div class="example-link"><a class="example-link" href="kcp_pyramid.html">Pyramid Charts</a></div>
  540. <div class="example-link"><a class="example-link" href="kcp_pyramid2.html">Pyramid Charts 2</a></div>
  541. <div class="example-link"><a class="example-link" href="kcp_quintiles.html">Quintile Pyramid Charts</a></div>
  542. <div class="example-link"><a class="example-link" href="resizablePlot.html">Resizable Plots</a></div>
  543. <div class="example-link"><a class="example-link" href="rotated-tick-labels.html">Rotated Labels and Font Styling</a></div>
  544. <div class="example-link"><a class="example-link" href="smoothedLine.html">Smoothed Lines</a></div>
  545. <div class="example-link"><a class="example-link" href="bar-charts.html">Vertical and Horizontal Bar Charts</a></div>
  546. <div class="example-link"><a class="example-link" href="waterfall.html">Waterfall Charts</a></div>
  547. <div class="example-link"><a class="example-link" href="waterfall2.html">Waterfall Charts 2</a></div>
  548. <div class="example-link"><a class="example-link" href="zoomOptions.html">Zoom Options</a></div>
  549. <div class="example-link"><a class="example-link" href="zoomProxy.html">Zoom Proxy - Control one plot from another</a></div>
  550. <div class="example-link"><a class="example-link" href="zoom1.html">Zooming</a></div>
  551. <div class="example-link"><a class="example-link" href="dateAxisLogAxisZooming.html">Zooming with Date and Log Axes</a></div>
  552. </div>
  553. </div>
  554. </div>
  555. <script type="text/javascript" src="example.min.js"></script>
  556. </body>
  557. </html>