brush-charts.html 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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>Brush 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. #chart-line {
  20. position: relative;
  21. margin-top: -40px;
  22. }
  23. </style>
  24. <script>
  25. window.Promise ||
  26. document.write(
  27. '<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"><\/script>'
  28. )
  29. window.Promise ||
  30. document.write(
  31. '<script src="https://cdn.jsdelivr.net/npm/eligrey-classlist-js-polyfill@1.2.20171210/classList.min.js"><\/script>'
  32. )
  33. window.Promise ||
  34. document.write(
  35. '<script src="https://cdn.jsdelivr.net/npm/findindex_polyfill_mdn"><\/script>'
  36. )
  37. </script>
  38. <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
  39. <script>
  40. /*
  41. // this function will generate output in this format
  42. // data = [
  43. [timestamp, 23],
  44. [timestamp, 33],
  45. [timestamp, 12]
  46. ...
  47. ]
  48. */
  49. function generateDayWiseTimeSeries(baseval, count, yrange) {
  50. var i = 0;
  51. var series = [];
  52. while (i < count) {
  53. var x = baseval;
  54. var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
  55. series.push([x, y]);
  56. baseval += 86400000;
  57. i++;
  58. }
  59. return series;
  60. }
  61. var data = generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 185, {
  62. min: 30,
  63. max: 90
  64. })
  65. </script>
  66. </head>
  67. <body>
  68. <div id="wrapper">
  69. <div id="chart-line2"></div>
  70. <div id="chart-line"></div>
  71. </div>
  72. <script>
  73. var options = {
  74. series: [{
  75. data: data
  76. }],
  77. chart: {
  78. id: 'chart2',
  79. type: 'line',
  80. height: 230,
  81. toolbar: {
  82. autoSelected: 'pan',
  83. show: false
  84. }
  85. },
  86. colors: ['#546E7A'],
  87. stroke: {
  88. width: 3
  89. },
  90. dataLabels: {
  91. enabled: false
  92. },
  93. fill: {
  94. opacity: 1,
  95. },
  96. markers: {
  97. size: 0
  98. },
  99. xaxis: {
  100. type: 'datetime'
  101. }
  102. };
  103. var chart = new ApexCharts(document.querySelector("#chart-line2"), options);
  104. chart.render();
  105. var optionsLine = {
  106. series: [{
  107. data: data
  108. }],
  109. chart: {
  110. id: 'chart1',
  111. height: 130,
  112. type: 'area',
  113. brush:{
  114. target: 'chart2',
  115. enabled: true
  116. },
  117. selection: {
  118. enabled: true,
  119. xaxis: {
  120. min: new Date('19 Jun 2017').getTime(),
  121. max: new Date('14 Aug 2017').getTime()
  122. }
  123. },
  124. },
  125. colors: ['#008FFB'],
  126. fill: {
  127. type: 'gradient',
  128. gradient: {
  129. opacityFrom: 0.91,
  130. opacityTo: 0.1,
  131. }
  132. },
  133. xaxis: {
  134. type: 'datetime',
  135. tooltip: {
  136. enabled: false
  137. }
  138. },
  139. yaxis: {
  140. tickAmount: 2
  141. }
  142. };
  143. var chartLine = new ApexCharts(document.querySelector("#chart-line"), optionsLine);
  144. chartLine.render();
  145. </script>
  146. </body>
  147. </html>