dataZoom-scatter-hv-polar.html 6.1 KB

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