image-fill.html 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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>HeatMap with image fill</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. function generateData(count, yrange) {
  34. var i = 0;
  35. var series = [];
  36. while (i < count) {
  37. var x = 'round' + (i + 1).toString();
  38. var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
  39. series.push({
  40. x: x,
  41. y: y
  42. });
  43. i++;
  44. }
  45. return series;
  46. }
  47. </script>
  48. </head>
  49. <body>
  50. <div id="app">
  51. <div id="chart">
  52. <apexchart type="heatmap" height="360" :options="chartOptions" :series="series"></apexchart>
  53. </div>
  54. </div>
  55. <!-- Below element is just for displaying source code. it is not required. DO NOT USE -->
  56. <div id="html">
  57. &lt;div id=&quot;chart&quot;&gt;
  58. &lt;apexchart type=&quot;heatmap&quot; height=&quot;360&quot; :options=&quot;chartOptions&quot; :series=&quot;series&quot;&gt;&lt;/apexchart&gt;
  59. &lt;/div&gt;
  60. </div>
  61. <script>
  62. new Vue({
  63. el: '#app',
  64. components: {
  65. apexchart: VueApexCharts,
  66. },
  67. data: {
  68. series: [
  69. {
  70. name: 'Oliver',
  71. data: generateData(15, {
  72. min: 0,
  73. max: 90
  74. })
  75. },
  76. {
  77. name: 'Harry',
  78. data: generateData(15, {
  79. min: 0,
  80. max: 90
  81. })
  82. },
  83. {
  84. name: 'Thomas',
  85. data: generateData(15, {
  86. min: 0,
  87. max: 90
  88. })
  89. },
  90. {
  91. name: 'Callum',
  92. data: generateData(15, {
  93. min: 0,
  94. max: 90
  95. })
  96. },
  97. {
  98. name: 'Ethan',
  99. data: generateData(15, {
  100. min: 0,
  101. max: 90
  102. })
  103. },
  104. {
  105. name: 'Richard',
  106. data: generateData(15, {
  107. min: 0,
  108. max: 90
  109. })
  110. },
  111. {
  112. name: 'David',
  113. data: generateData(15, {
  114. min: 0,
  115. max: 90
  116. })
  117. }
  118. ],
  119. chartOptions: {
  120. chart: {
  121. height: 360,
  122. type: 'heatmap',
  123. },
  124. dataLabels: {
  125. enabled: false
  126. },
  127. colors: ["#008FFB"],
  128. title: {
  129. text: 'HeatMap Chart with image fill'
  130. },
  131. fill: {
  132. type: 'image',
  133. image: {
  134. src: '../../assets/images/ico-instagram.png',
  135. }
  136. }
  137. },
  138. },
  139. })
  140. </script>
  141. </body>
  142. </html>