dataZoom-scatter-hv-polar.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <script src="lib/esl.js"></script>
  5. <script src="lib/config.js"></script>
  6. <script src="lib/jquery.min.js"></script>
  7. </head>
  8. <body>
  9. <style>
  10. html, body, #main {
  11. padding: 0;
  12. margin: 0;
  13. width: 100%;
  14. height: 600px;
  15. }
  16. .operations {
  17. margin-top: 10px;
  18. margin-bottom: 30px;
  19. }
  20. </style>
  21. <div class="operations">
  22. <input type="radio" name="inside" value="radius"/> inside zoom radius
  23. <input type="radio" name="inside" value="angle" checked="checked"/> inside zoom angle
  24. <input type="radio" name="inside" value="all"/> inside zoom all
  25. </div>
  26. <div id="main"></div>
  27. <script>
  28. require([
  29. 'echarts'
  30. // 'echarts/chart/scatter',
  31. // 'echarts/component/legend',
  32. // 'echarts/component/polar',
  33. // 'echarts/component/dataZoom'
  34. ], function (echarts) {
  35. var chart = echarts.init(document.getElementById('main'), null, {
  36. });
  37. var data1 = [];
  38. var data2 = [];
  39. var data3 = [];
  40. for (var i = 0; i < 100; i++) {
  41. data1.push([Math.random() * 5, Math.random() * 360]);
  42. data2.push([Math.random() * 5, Math.random() * 360]);
  43. data3.push([Math.random() * 10, Math.random() * 360]);
  44. }
  45. chart.setOption({
  46. legend: {
  47. data: ['scatter', 'scatter2', 'scatter3']
  48. },
  49. polar: {
  50. },
  51. angleAxis: {
  52. type: 'value'
  53. },
  54. radiusAxis: {
  55. axisAngle: 0
  56. },
  57. dataZoom: [
  58. {
  59. id: 'slider-v',
  60. show: true,
  61. orient: 'vertical',
  62. angleAxisIndex: [0]
  63. },
  64. {
  65. id: 'slider-h',
  66. show: true,
  67. orient: 'horizontal',
  68. radiusAxisIndex: [0]
  69. }
  70. ],
  71. series: [{
  72. coordinateSystem: 'polar',
  73. // FIXME
  74. // 现在必须得设置这个,能不能polar和catesian一样,要不然很多特殊处理。
  75. angleAxisIndex: 0,
  76. radiusAxisIndex: 0,
  77. name: 'scatter',
  78. type: 'scatter',
  79. symbolSize: 10,
  80. data: data1
  81. }, {
  82. coordinateSystem: 'polar',
  83. angleAxisIndex: 0,
  84. radiusAxisIndex: 0,
  85. name: 'scatter2',
  86. type: 'scatter',
  87. symbolSize: 10,
  88. data: data2
  89. }, {
  90. coordinateSystem: 'polar',
  91. angleAxisIndex: 0,
  92. radiusAxisIndex: 0,
  93. name: 'scatter3',
  94. type: 'scatter',
  95. symbolSize: 10,
  96. data: data3
  97. }]
  98. });
  99. var radioOption = {
  100. radius: {
  101. dataZoom: [
  102. {
  103. disabled: true,
  104. id: 'inside-a',
  105. type: 'inside',
  106. angleAxisIndex: 0
  107. },
  108. {
  109. disabled: false,
  110. id: 'inside-r',
  111. type: 'inside',
  112. radiusAxisIndex: 0
  113. }
  114. ]
  115. },
  116. angle: {
  117. dataZoom: [
  118. {
  119. disabled: false,
  120. id: 'inside-a',
  121. type: 'inside',
  122. angleAxisIndex: 0
  123. },
  124. {
  125. disabled: true,
  126. id: 'inside-r',
  127. type: 'inside',
  128. radiusAxisIndex: 0
  129. }
  130. ]
  131. },
  132. all: {
  133. dataZoom: [
  134. {
  135. disabled: false,
  136. id: 'inside-a',
  137. type: 'inside',
  138. angleAxisIndex: [0]
  139. },
  140. {
  141. disabled: false,
  142. id: 'inside-r',
  143. type: 'inside',
  144. radiusAxisIndex: [0]
  145. }
  146. ]
  147. }
  148. };
  149. initRadio();
  150. chart.setOption(radioOption.angle);
  151. function initRadio() {
  152. $('.operations').on('click', function () {
  153. $('.operations input').each(function (idx, el) {
  154. if (el.checked) {
  155. chart.setOption(radioOption[el.getAttribute('value')]);
  156. }
  157. });
  158. });
  159. }
  160. })
  161. </script>
  162. </body>
  163. </html>