syncing-charts.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  7. <title>Syncing charts</title>
  8. <link href="../../assets/styles.css" rel="stylesheet" />
  9. <style>
  10. #wrapper {
  11. padding-top: 20px;
  12. padding-left: 10px;
  13. background: #fff;
  14. border: 1px solid #ddd;
  15. box-shadow: 0 22px 35px -16px rgba(0, 0, 0, 0.1);
  16. max-width: 650px;
  17. margin: 35px auto;
  18. }
  19. </style>
  20. <script>
  21. window.Promise ||
  22. document.write(
  23. '<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"><\/script>'
  24. )
  25. window.Promise ||
  26. document.write(
  27. '<script src="https://cdn.jsdelivr.net/npm/eligrey-classlist-js-polyfill@1.2.20171210/classList.min.js"><\/script>'
  28. )
  29. window.Promise ||
  30. document.write(
  31. '<script src="https://cdn.jsdelivr.net/npm/findindex_polyfill_mdn"><\/script>'
  32. )
  33. </script>
  34. <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
  35. <script>
  36. // The global window.Apex variable below can be used to set common options for all charts on the page
  37. Apex = {
  38. chart: {
  39. height: 160,
  40. },
  41. dataLabels: {
  42. enabled: false
  43. },
  44. stroke: {
  45. curve: 'straight'
  46. },
  47. toolbar: {
  48. tools: {
  49. selection: false
  50. }
  51. },
  52. markers: {
  53. size: 6,
  54. hover: {
  55. size: 10
  56. }
  57. },
  58. tooltip: {
  59. followCursor: false,
  60. theme: 'dark',
  61. x: {
  62. show: false
  63. },
  64. marker: {
  65. show: false
  66. },
  67. y: {
  68. title: {
  69. formatter: function() {
  70. return ''
  71. }
  72. }
  73. }
  74. },
  75. grid: {
  76. clipMarkers: false
  77. },
  78. yaxis: {
  79. tickAmount: 2
  80. },
  81. xaxis: {
  82. type: 'datetime'
  83. },
  84. }
  85. /*
  86. // this function will generate output in this format
  87. // data = [
  88. [timestamp, 23],
  89. [timestamp, 33],
  90. [timestamp, 12]
  91. ...
  92. ]
  93. */
  94. function generateDayWiseTimeSeries(baseval, count, yrange) {
  95. var i = 0;
  96. var series = [];
  97. while (i < count) {
  98. var x = baseval;
  99. var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
  100. series.push([x, y]);
  101. baseval += 86400000;
  102. i++;
  103. }
  104. return series;
  105. }
  106. </script>
  107. </head>
  108. <body>
  109. <div id="wrapper">
  110. <div id="chart-line"></div>
  111. <div id="chart-line2"></div>
  112. <div id="chart-area"></div>
  113. </div>
  114. <script>
  115. var options = {
  116. series: [{
  117. data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
  118. min: 10,
  119. max: 60
  120. })
  121. }],
  122. chart: {
  123. id: 'fb',
  124. group: 'social',
  125. type: 'line',
  126. height: 160
  127. },
  128. colors: ['#008FFB'],
  129. yaxis: {
  130. labels: {
  131. minWidth: 40
  132. }
  133. }
  134. };
  135. var chart = new ApexCharts(document.querySelector("#chart-line"), options);
  136. chart.render();
  137. var optionsLine2 = {
  138. series: [{
  139. data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
  140. min: 10,
  141. max: 30
  142. })
  143. }],
  144. chart: {
  145. id: 'tw',
  146. group: 'social',
  147. type: 'line',
  148. height: 160
  149. },
  150. colors: ['#546E7A'],
  151. yaxis: {
  152. labels: {
  153. minWidth: 40
  154. }
  155. }
  156. };
  157. var chartLine2 = new ApexCharts(document.querySelector("#chart-line2"), optionsLine2);
  158. chartLine2.render();
  159. var optionsArea = {
  160. series: [{
  161. data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
  162. min: 10,
  163. max: 60
  164. })
  165. }],
  166. chart: {
  167. id: 'yt',
  168. group: 'social',
  169. type: 'area',
  170. height: 160
  171. },
  172. colors: ['#00E396'],
  173. yaxis: {
  174. labels: {
  175. minWidth: 40
  176. }
  177. }
  178. };
  179. var chartArea = new ApexCharts(document.querySelector("#chart-area"), optionsArea);
  180. chartArea.render();
  181. </script>
  182. </body>
  183. </html>