calendar-effectScater.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>calendar</title>
  5. <meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <link rel="stylesheet" href="lib/reset.css">
  7. <script src="lib/esl.js"></script>
  8. <script src="lib/config.js"></script>
  9. <script src="lib/jquery.min.js"></script>
  10. </head>
  11. <body>
  12. <style>
  13. html, body, #main {
  14. width: 100%;
  15. height: 100%;
  16. }
  17. </style>
  18. <div id="main"></div>
  19. <script>
  20. var getVirtulData = function(year) {
  21. year = year || '2017';
  22. var datas = [];
  23. var arr31 = [1, 3, 5, 7, 8, 10, 12];
  24. var arr30 = [4, 6, 9, 11];
  25. for (var i = 1; i <= 31; i++) {
  26. for (var j = arr31.length - 1; j >= 0; j--) {
  27. datas.push([year + '-' + arr31[j] + '-' + i, Math.floor(Math.random() * 10000)]);
  28. }
  29. }
  30. for (var i = 1; i <= 30; i++) {
  31. for (var j = arr30.length - 1; j >= 0; j--) {
  32. datas.push([year + '-' + arr30[j] + '-' + i, Math.floor(Math.random() * 10000)]);
  33. }
  34. }
  35. for (var i = 1; i <= 29; i++) {
  36. datas.push([year + '-2-' + i, Math.floor(Math.random() * 10000)]);
  37. }
  38. return datas;
  39. }
  40. var data = getVirtulData(2016);
  41. require([
  42. 'echarts'
  43. // 'echarts/chart/heatmap',
  44. // 'echarts/chart/scatter',
  45. // 'echarts/chart/effectScatter',
  46. // 'echarts/component/title',
  47. // 'echarts/component/legend',
  48. // 'echarts/component/calendar',
  49. // 'echarts/component/tooltip',
  50. // 'echarts/component/visualMap'
  51. ], function (echarts) {
  52. var chart = echarts.init(document.getElementById('main'));
  53. chart.setOption({
  54. aria: {
  55. show: true
  56. },
  57. backgroundColor: '#404a59',
  58. title: {
  59. top: 30,
  60. text: '2016年某人每天的步数',
  61. subtext: '数据纯属虚构',
  62. left: 'center',
  63. textStyle: {
  64. color: '#fff'
  65. }
  66. },
  67. tooltip : {
  68. trigger: 'item'
  69. },
  70. legend: {
  71. orient: 'vertical',
  72. y: '30',
  73. x: '100',
  74. data:['步数'],
  75. textStyle: {
  76. color: '#fff'
  77. }
  78. },
  79. calendar: {
  80. top: 100,
  81. left: 60,
  82. range: '2016',
  83. splitLine: {
  84. show: true,
  85. lineStyle: {
  86. color: '#000',
  87. width: 4,
  88. type: 'solid'
  89. }
  90. },
  91. yearLabel: {
  92. textStyle: {
  93. color: '#fff'
  94. }
  95. },
  96. itemStyle: {
  97. normal: {
  98. color: '#323c48',
  99. borderWidth: 1,
  100. borderColor: '#111'
  101. }
  102. }
  103. },
  104. series : [
  105. {
  106. name: '步数',
  107. type: 'scatter',
  108. coordinateSystem: 'calendar',
  109. data: data,
  110. cursor: 'default',
  111. symbolSize: function (val) {
  112. return val[1] / 500;
  113. },
  114. itemStyle: {
  115. normal: {
  116. color: '#ddb926'
  117. }
  118. }
  119. },
  120. {
  121. name: 'Top 12',
  122. type: 'effectScatter',
  123. coordinateSystem: 'calendar',
  124. cursor: 'default',
  125. data: data.sort(function (a, b) {
  126. return b[1] - a[1];
  127. }).slice(0, 12),
  128. symbolSize: function (val) {
  129. return val[1] / 500;
  130. },
  131. showEffectOn: 'render',
  132. rippleEffect: {
  133. brushType: 'stroke'
  134. },
  135. hoverAnimation: true,
  136. itemStyle: {
  137. normal: {
  138. color: '#f4e925',
  139. shadowBlur: 10,
  140. shadowColor: '#333'
  141. }
  142. },
  143. zlevel: 1
  144. }
  145. ]
  146. });
  147. $(window).resize(function() {
  148. chart.resize();
  149. });
  150. });
  151. </script>
  152. </body>
  153. </html>