scatter.html 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <script src="esl.js"></script>
  5. <script src="config.js"></script>
  6. </head>
  7. <body>
  8. <style>
  9. html, body, #main {
  10. width: 100%;
  11. height: 100%;
  12. }
  13. </style>
  14. <div id="main"></div>
  15. <script>
  16. require([
  17. 'echarts',
  18. 'echarts/chart/scatter',
  19. 'echarts/component/legend',
  20. 'echarts/component/grid',
  21. 'echarts/component/tooltip',
  22. 'echarts/component/toolbox'
  23. ], function (echarts) {
  24. var chart = echarts.init(document.getElementById('main'));
  25. var data1 = [];
  26. var data2 = [];
  27. var data3 = [];
  28. var random = function (max) {
  29. return (Math.random() * max).toFixed(3);
  30. }
  31. for (var i = 0; i < 50; i++) {
  32. data1.push([random(5), random(5), random(2)]);
  33. data2.push([random(10), random(10), random(2)]);
  34. data3.push([random(15), random(10), random(2)]);
  35. }
  36. chart.setOption({
  37. legend: {
  38. data: ['scatter', 'scatter2', 'scatter3']
  39. },
  40. toolbox: {
  41. left: 'left',
  42. feature: {
  43. dataView: {},
  44. saveAsImage: {},
  45. dataZoom: {}
  46. }
  47. },
  48. tooltip: {
  49. trigger: 'axis',
  50. axisPointer: {
  51. type: 'cross'
  52. }
  53. },
  54. xAxis: {
  55. type: 'value',
  56. splitLine: {
  57. show: false
  58. },
  59. min: 0,
  60. max: 15,
  61. splitNumber: 30
  62. },
  63. yAxis: {
  64. type: 'value',
  65. splitLine: {
  66. show: false
  67. }
  68. },
  69. series: [{
  70. name: 'scatter',
  71. type: 'scatter',
  72. label: {
  73. emphasis: {
  74. show: true
  75. }
  76. },
  77. // symbol: 'diamond',
  78. symbolSize: function (val) {
  79. return val[2] * 40;
  80. },
  81. // itemStyle: {
  82. // normal: {
  83. // color: function (params) {
  84. // return 'rgba(30, 70, 50, ' + params.value[2] + ')';
  85. // }
  86. // }
  87. // },
  88. data: data1
  89. }, {
  90. name: 'scatter2',
  91. type: 'scatter',
  92. label: {
  93. emphasis: {
  94. show: true,
  95. position: 'top',
  96. formatter: function (params) {
  97. return params.value;
  98. }
  99. }
  100. },
  101. symbolSize: function (val) {
  102. return val[2] * 40;
  103. },
  104. // itemStyle: {
  105. // normal: {
  106. // label: {
  107. // show: true
  108. // }
  109. // }
  110. // },
  111. data: data2
  112. }, {
  113. name: 'scatter3',
  114. type: 'scatter',
  115. label: {
  116. emphasis: {
  117. show: true
  118. }
  119. },
  120. symbolSize: function (val) {
  121. return val[2] * 40;
  122. },
  123. data: data3
  124. }],
  125. animationDelay: function (idx) {
  126. return idx * 20;
  127. },
  128. animationDelayUpdate: function (idx) {
  129. return idx * 20;
  130. }
  131. });
  132. chart.on('click', function (params) {
  133. console.log(params.data);
  134. });
  135. })
  136. </script>
  137. </body>
  138. </html>