scatter-datetime.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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>Timeline Scatter Chart</title>
  8. <link href="../../assets/styles.css" rel="stylesheet" />
  9. <style>
  10. #chart {
  11. max-width: 650px;
  12. margin: 35px auto;
  13. }
  14. </style>
  15. <script>
  16. window.Promise ||
  17. document.write(
  18. '<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"><\/script>'
  19. )
  20. window.Promise ||
  21. document.write(
  22. '<script src="https://cdn.jsdelivr.net/npm/eligrey-classlist-js-polyfill@1.2.20171210/classList.min.js"><\/script>'
  23. )
  24. window.Promise ||
  25. document.write(
  26. '<script src="https://cdn.jsdelivr.net/npm/findindex_polyfill_mdn"><\/script>'
  27. )
  28. </script>
  29. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
  30. <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
  31. <script src="https://cdn.jsdelivr.net/npm/vue-apexcharts"></script>
  32. <script>
  33. /*
  34. // this function will generate output in this format
  35. // data = [
  36. [timestamp, 23],
  37. [timestamp, 33],
  38. [timestamp, 12]
  39. ...
  40. ]
  41. */
  42. function generateDayWiseTimeSeries(baseval, count, yrange) {
  43. var i = 0;
  44. var series = [];
  45. while (i < count) {
  46. var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
  47. series.push([baseval, y]);
  48. baseval += 86400000;
  49. i++;
  50. }
  51. return series;
  52. }
  53. </script>
  54. </head>
  55. <body>
  56. <div id="app">
  57. <div id="chart">
  58. <apexchart type="scatter" height="350" :options="chartOptions" :series="series"></apexchart>
  59. </div>
  60. </div>
  61. <!-- Below element is just for displaying source code. it is not required. DO NOT USE -->
  62. <div id="html">
  63. &lt;div id=&quot;chart&quot;&gt;
  64. &lt;apexchart type=&quot;scatter&quot; height=&quot;350&quot; :options=&quot;chartOptions&quot; :series=&quot;series&quot;&gt;&lt;/apexchart&gt;
  65. &lt;/div&gt;
  66. </div>
  67. <script>
  68. new Vue({
  69. el: '#app',
  70. components: {
  71. apexchart: VueApexCharts,
  72. },
  73. data: {
  74. series: [{
  75. name: 'TEAM 1',
  76. data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, {
  77. min: 10,
  78. max: 60
  79. })
  80. },
  81. {
  82. name: 'TEAM 2',
  83. data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 20, {
  84. min: 10,
  85. max: 60
  86. })
  87. },
  88. {
  89. name: 'TEAM 3',
  90. data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 30, {
  91. min: 10,
  92. max: 60
  93. })
  94. },
  95. {
  96. name: 'TEAM 4',
  97. data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 10, {
  98. min: 10,
  99. max: 60
  100. })
  101. },
  102. {
  103. name: 'TEAM 5',
  104. data: generateDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 30, {
  105. min: 10,
  106. max: 60
  107. })
  108. },
  109. ],
  110. chartOptions: {
  111. chart: {
  112. height: 350,
  113. type: 'scatter',
  114. zoom: {
  115. type: 'xy'
  116. }
  117. },
  118. dataLabels: {
  119. enabled: false
  120. },
  121. grid: {
  122. xaxis: {
  123. lines: {
  124. show: true
  125. }
  126. },
  127. yaxis: {
  128. lines: {
  129. show: true
  130. }
  131. },
  132. },
  133. xaxis: {
  134. type: 'datetime',
  135. },
  136. yaxis: {
  137. max: 70
  138. }
  139. },
  140. },
  141. })
  142. </script>
  143. </body>
  144. </html>