echarts 3.5.4 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/LICENSE +21 -18
  2. package/dist/echarts.common.js +10072 -9330
  3. package/dist/echarts.common.min.js +13 -13
  4. package/dist/echarts.js +13084 -11412
  5. package/dist/echarts.min.js +22 -21
  6. package/dist/echarts.simple.js +9454 -8889
  7. package/dist/echarts.simple.min.js +9 -10
  8. package/index.js +1 -0
  9. package/lib/chart/bar/BarView.js +141 -49
  10. package/lib/chart/bar/BaseBarSeries.js +2 -6
  11. package/lib/chart/bar.js +1 -0
  12. package/lib/chart/boxplot/BoxplotSeries.js +1 -1
  13. package/lib/chart/boxplot/boxplotLayout.js +23 -7
  14. package/lib/chart/candlestick/CandlestickSeries.js +1 -21
  15. package/lib/chart/candlestick/candlestickLayout.js +23 -7
  16. package/lib/chart/custom.js +442 -0
  17. package/lib/chart/graph/categoryVisual.js +3 -2
  18. package/lib/chart/heatmap/HeatmapView.js +75 -73
  19. package/lib/chart/helper/Symbol.js +8 -31
  20. package/lib/chart/helper/createListFromArray.js +15 -10
  21. package/lib/chart/helper/labelHelper.js +48 -0
  22. package/lib/chart/helper/whiskerBoxCommon.js +25 -44
  23. package/lib/chart/map/mapDataStatistic.js +9 -8
  24. package/lib/chart/pie/pieLayout.js +25 -17
  25. package/lib/chart/radar/RadarSeries.js +1 -1
  26. package/lib/chart/scatter/ScatterSeries.js +2 -3
  27. package/lib/chart/themeRiver/ThemeRiverSeries.js +6 -5
  28. package/lib/chart/themeRiver/themeRiverVisual.js +1 -1
  29. package/lib/chart/treemap/TreemapSeries.js +3 -3
  30. package/lib/component/axisPointer/BaseAxisPointer.js +7 -6
  31. package/lib/component/axisPointer/axisTrigger.js +62 -51
  32. package/lib/component/axisPointer.js +1 -2
  33. package/lib/component/calendar/CalendarView.js +5 -5
  34. package/lib/component/dataZoom/AxisProxy.js +76 -13
  35. package/lib/component/dataZoom/DataZoomModel.js +21 -5
  36. package/lib/component/dataZoom/InsideZoomModel.js +4 -1
  37. package/lib/component/dataZoom/InsideZoomView.js +16 -26
  38. package/lib/component/dataZoom/SliderZoomView.js +63 -26
  39. package/lib/component/dataZoom/roams.js +8 -3
  40. package/lib/component/graphic.js +13 -12
  41. package/lib/component/helper/BrushTargetManager.js +5 -5
  42. package/lib/component/helper/MapDraw.js +3 -3
  43. package/lib/component/helper/RoamController.js +43 -20
  44. package/lib/component/helper/brushHelper.js +2 -13
  45. package/lib/component/helper/selectableMixin.js +7 -7
  46. package/lib/component/helper/sliderMove.js +65 -36
  47. package/lib/component/legend/LegendView.js +6 -6
  48. package/lib/component/legend/legendAction.js +1 -1
  49. package/lib/component/marker/MarkAreaView.js +3 -6
  50. package/lib/component/marker/MarkLineView.js +3 -5
  51. package/lib/component/marker/MarkPointView.js +3 -5
  52. package/lib/component/marker/MarkerView.js +10 -12
  53. package/lib/component/polar.js +5 -0
  54. package/lib/component/timeline/SliderTimelineView.js +1 -1
  55. package/lib/component/toolbox/feature/DataZoom.js +14 -1
  56. package/lib/component/tooltip/TooltipView.js +3 -3
  57. package/lib/component/visualMap/ContinuousView.js +6 -4
  58. package/lib/coord/Axis.js +34 -2
  59. package/lib/coord/axisDefault.js +2 -1
  60. package/lib/coord/axisHelper.js +6 -25
  61. package/lib/coord/axisModelCommonMixin.js +1 -1
  62. package/lib/coord/calendar/Calendar.js +14 -17
  63. package/lib/coord/calendar/prepareCustom.js +31 -0
  64. package/lib/coord/cartesian/Axis2D.js +0 -12
  65. package/lib/coord/cartesian/Cartesian2D.js +1 -0
  66. package/lib/coord/cartesian/Grid.js +5 -2
  67. package/lib/coord/cartesian/prepareCustom.js +36 -0
  68. package/lib/coord/geo/Geo.js +9 -14
  69. package/lib/coord/geo/GeoModel.js +5 -5
  70. package/lib/coord/geo/geoCreator.js +3 -3
  71. package/lib/coord/geo/prepareCustom.js +36 -0
  72. package/lib/coord/parallel/Parallel.js +12 -11
  73. package/lib/coord/polar/Polar.js +2 -1
  74. package/lib/coord/polar/prepareCustom.js +53 -0
  75. package/lib/coord/single/Single.js +9 -8
  76. package/lib/coord/single/SingleAxis.js +0 -27
  77. package/lib/coord/single/prepareCustom.js +33 -0
  78. package/lib/data/DataDiffer.js +2 -1
  79. package/lib/data/Graph.js +11 -7
  80. package/lib/data/List.js +58 -19
  81. package/lib/data/helper/completeDimensions.js +184 -23
  82. package/lib/echarts.js +38 -33
  83. package/lib/helper.js +1 -8
  84. package/lib/layout/barGrid.js +87 -18
  85. package/lib/layout/barPolar.js +286 -0
  86. package/lib/layout/points.js +22 -16
  87. package/lib/model/Global.js +34 -31
  88. package/lib/model/Series.js +41 -29
  89. package/lib/model/mixin/colorPalette.js +2 -1
  90. package/lib/model/mixin/textStyle.js +7 -13
  91. package/lib/scale/Interval.js +21 -14
  92. package/lib/scale/Log.js +5 -7
  93. package/lib/scale/Time.js +13 -7
  94. package/lib/scale/helper.js +5 -1
  95. package/lib/util/format.js +12 -0
  96. package/lib/util/graphic.js +53 -1
  97. package/lib/util/model.js +63 -7
  98. package/map/js/world.js +1 -1
  99. package/map/json/world.json +1 -1
  100. package/package.json +3 -3
  101. package/src/chart/bar/BarView.js +141 -49
  102. package/src/chart/bar/BaseBarSeries.js +2 -6
  103. package/src/chart/bar.js +1 -0
  104. package/src/chart/boxplot/BoxplotSeries.js +1 -1
  105. package/src/chart/boxplot/boxplotLayout.js +23 -7
  106. package/src/chart/candlestick/CandlestickSeries.js +1 -21
  107. package/src/chart/candlestick/candlestickLayout.js +23 -7
  108. package/src/chart/custom.js +442 -0
  109. package/src/chart/graph/categoryVisual.js +3 -2
  110. package/src/chart/heatmap/HeatmapView.js +75 -73
  111. package/src/chart/helper/Symbol.js +8 -31
  112. package/src/chart/helper/createListFromArray.js +15 -10
  113. package/src/chart/helper/labelHelper.js +49 -0
  114. package/src/chart/helper/whiskerBoxCommon.js +25 -44
  115. package/src/chart/map/mapDataStatistic.js +9 -8
  116. package/src/chart/pie/pieLayout.js +25 -17
  117. package/src/chart/radar/RadarSeries.js +1 -1
  118. package/src/chart/scatter/ScatterSeries.js +2 -3
  119. package/src/chart/themeRiver/ThemeRiverSeries.js +6 -5
  120. package/src/chart/themeRiver/themeRiverVisual.js +1 -1
  121. package/src/chart/treemap/TreemapSeries.js +3 -3
  122. package/src/component/axisPointer/BaseAxisPointer.js +7 -6
  123. package/src/component/axisPointer/axisTrigger.js +62 -51
  124. package/src/component/axisPointer.js +1 -2
  125. package/src/component/calendar/CalendarView.js +5 -5
  126. package/src/component/dataZoom/AxisProxy.js +76 -13
  127. package/src/component/dataZoom/DataZoomModel.js +21 -5
  128. package/src/component/dataZoom/InsideZoomModel.js +4 -1
  129. package/src/component/dataZoom/InsideZoomView.js +16 -26
  130. package/src/component/dataZoom/SliderZoomView.js +63 -26
  131. package/src/component/dataZoom/roams.js +8 -3
  132. package/src/component/graphic.js +13 -12
  133. package/src/component/helper/BrushTargetManager.js +5 -5
  134. package/src/component/helper/MapDraw.js +3 -3
  135. package/src/component/helper/RoamController.js +43 -20
  136. package/src/component/helper/brushHelper.js +2 -13
  137. package/src/component/helper/selectableMixin.js +7 -7
  138. package/src/component/helper/sliderMove.js +65 -36
  139. package/src/component/legend/LegendView.js +6 -6
  140. package/src/component/legend/legendAction.js +1 -1
  141. package/src/component/marker/MarkAreaView.js +3 -6
  142. package/src/component/marker/MarkLineView.js +3 -5
  143. package/src/component/marker/MarkPointView.js +3 -5
  144. package/src/component/marker/MarkerView.js +10 -12
  145. package/src/component/polar.js +5 -0
  146. package/src/component/timeline/SliderTimelineView.js +1 -1
  147. package/src/component/toolbox/feature/DataZoom.js +14 -1
  148. package/src/component/tooltip/TooltipView.js +3 -3
  149. package/src/component/visualMap/ContinuousView.js +6 -4
  150. package/src/coord/Axis.js +34 -2
  151. package/src/coord/axisDefault.js +2 -1
  152. package/src/coord/axisHelper.js +6 -25
  153. package/src/coord/axisModelCommonMixin.js +1 -1
  154. package/src/coord/calendar/Calendar.js +14 -17
  155. package/src/coord/calendar/prepareCustom.js +32 -0
  156. package/src/coord/cartesian/Axis2D.js +0 -12
  157. package/src/coord/cartesian/Cartesian2D.js +1 -0
  158. package/src/coord/cartesian/Grid.js +5 -2
  159. package/src/coord/cartesian/prepareCustom.js +37 -0
  160. package/src/coord/geo/Geo.js +9 -14
  161. package/src/coord/geo/GeoModel.js +5 -5
  162. package/src/coord/geo/geoCreator.js +3 -3
  163. package/src/coord/geo/prepareCustom.js +37 -0
  164. package/src/coord/parallel/Parallel.js +12 -11
  165. package/src/coord/polar/Polar.js +2 -1
  166. package/src/coord/polar/prepareCustom.js +54 -0
  167. package/src/coord/single/Single.js +9 -8
  168. package/src/coord/single/SingleAxis.js +0 -27
  169. package/src/coord/single/prepareCustom.js +34 -0
  170. package/src/data/DataDiffer.js +2 -1
  171. package/src/data/Graph.js +11 -7
  172. package/src/data/List.js +58 -19
  173. package/src/data/helper/completeDimensions.js +184 -23
  174. package/src/echarts.js +38 -33
  175. package/src/helper.js +1 -8
  176. package/src/layout/barGrid.js +87 -18
  177. package/src/layout/barPolar.js +287 -0
  178. package/src/layout/points.js +22 -16
  179. package/src/model/Global.js +34 -31
  180. package/src/model/Series.js +41 -29
  181. package/src/model/mixin/colorPalette.js +2 -1
  182. package/src/model/mixin/textStyle.js +7 -13
  183. package/src/scale/Interval.js +21 -14
  184. package/src/scale/Log.js +5 -7
  185. package/src/scale/Time.js +13 -7
  186. package/src/scale/helper.js +5 -1
  187. package/src/util/format.js +12 -0
  188. package/src/util/graphic.js +53 -1
  189. package/src/util/model.js +63 -7
  190. package/src/coord/cartesian/axisLabelInterval.js +0 -26
@@ -38,8 +38,13 @@
38
38
  var coordSysName = seriesModel.get('coordinateSystem');
39
39
  var creator = creators[coordSysName];
40
40
  var registeredCoordSys = CoordinateSystem.get(coordSysName);
41
+ var completeDimOpt = {
42
+ encodeDef: seriesModel.get('encode'),
43
+ dimsDef: seriesModel.get('dimensions')
44
+ };
45
+
41
46
  // FIXME
42
- var axesInfo = creator && creator(data, seriesModel, ecModel);
47
+ var axesInfo = creator && creator(data, seriesModel, ecModel, completeDimOpt);
43
48
  var dimensions = axesInfo && axesInfo.dimensions;
44
49
  if (!dimensions) {
45
50
  // Get dimensions from registered coordinate system
@@ -48,7 +53,7 @@
48
53
  ? registeredCoordSys.getDimensionsInfo()
49
54
  : registeredCoordSys.dimensions.slice()
50
55
  )) || ['x', 'y'];
51
- dimensions = completeDimensions(dimensions, data, {defaultNames: dimensions.concat(['value'])});
56
+ dimensions = completeDimensions(dimensions, data, completeDimOpt);
52
57
  }
53
58
 
54
59
  var categoryIndex = axesInfo ? axesInfo.categoryIndex : -1;
@@ -118,7 +123,7 @@
118
123
  */
119
124
  var creators = {
120
125
 
121
- cartesian2d: function (data, seriesModel, ecModel) {
126
+ cartesian2d: function (data, seriesModel, ecModel, completeDimOpt) {
122
127
 
123
128
  var axesModels = zrUtil.map(['xAxis', 'yAxis'], function (name) {
124
129
  return ecModel.queryComponents({
@@ -167,7 +172,7 @@
167
172
  var isXAxisCateogry = xAxisType === 'category';
168
173
  var isYAxisCategory = yAxisType === 'category';
169
174
 
170
- completeDimensions(dimensions, data, {defaultNames: ['x', 'y', 'z']});
175
+ dimensions = completeDimensions(dimensions, data, completeDimOpt);
171
176
 
172
177
  var categoryAxesModels = {};
173
178
  if (isXAxisCateogry) {
@@ -183,7 +188,7 @@
183
188
  };
184
189
  },
185
190
 
186
- singleAxis: function (data, seriesModel, ecModel) {
191
+ singleAxis: function (data, seriesModel, ecModel, completeDimOpt) {
187
192
 
188
193
  var singleAxisModel = ecModel.queryComponents({
189
194
  mainType: 'singleAxis',
@@ -206,7 +211,7 @@
206
211
  stackable: isStackable(singleAxisType)
207
212
  }];
208
213
 
209
- completeDimensions(dimensions, data);
214
+ dimensions = completeDimensions(dimensions, data, completeDimOpt);
210
215
 
211
216
  var categoryAxesModels = {};
212
217
  if (isCategory) {
@@ -220,7 +225,7 @@
220
225
  };
221
226
  },
222
227
 
223
- polar: function (data, seriesModel, ecModel) {
228
+ polar: function (data, seriesModel, ecModel, completeDimOpt) {
224
229
  var polarModel = ecModel.queryComponents({
225
230
  mainType: 'polar',
226
231
  index: seriesModel.get('polarIndex'),
@@ -257,7 +262,7 @@
257
262
  var isAngleAxisCateogry = angleAxisType === 'category';
258
263
  var isRadiusAxisCateogry = radiusAxisType === 'category';
259
264
 
260
- completeDimensions(dimensions, data, {defaultNames: ['radius', 'angle', 'value']});
265
+ dimensions = completeDimensions(dimensions, data, completeDimOpt);
261
266
 
262
267
  var categoryAxesModels = {};
263
268
  if (isRadiusAxisCateogry) {
@@ -273,14 +278,14 @@
273
278
  };
274
279
  },
275
280
 
276
- geo: function (data, seriesModel, ecModel) {
281
+ geo: function (data, seriesModel, ecModel, completeDimOpt) {
277
282
  // TODO Region
278
283
  // 多个散点图系列在同一个地区的时候
279
284
  return {
280
285
  dimensions: completeDimensions([
281
286
  {name: 'lng'},
282
287
  {name: 'lat'}
283
- ], data, {defaultNames: ['lng', 'lat', 'value']})
288
+ ], data, completeDimOpt)
284
289
  };
285
290
  }
286
291
  };
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @module echarts/chart/helper/Symbol
3
+ */
4
+
5
+
6
+ var graphic = require('../../util/graphic');
7
+ var zrUtil = require('zrender/lib/core/util');
8
+ var modelUtil = require('../../util/model');
9
+
10
+ var helper = {};
11
+
12
+ helper.findLabelValueDim = function (data) {
13
+ var valueDim;
14
+ var labelDims = modelUtil.otherDimToDataDim(data, 'label');
15
+
16
+ if (labelDims.length) {
17
+ valueDim = labelDims[0];
18
+ }
19
+ else {
20
+ // Get last value dim
21
+ var dimensions = data.dimensions.slice();
22
+ var dataType;
23
+ while (dimensions.length && (
24
+ valueDim = dimensions.pop(),
25
+ dataType = data.getDimensionInfo(valueDim).type,
26
+ dataType === 'ordinal' || dataType === 'time'
27
+ )) {} // jshint ignore:line
28
+ }
29
+
30
+ return valueDim;
31
+ };
32
+
33
+ helper.setTextToStyle = function (
34
+ data, dataIndex, valueDim, elStyle, seriesModel, labelModel, color
35
+ ) {
36
+ if (valueDim != null && labelModel.getShallow('show')) {
37
+ graphic.setText(elStyle, labelModel, color);
38
+ elStyle.text = zrUtil.retrieve(
39
+ seriesModel.getFormattedLabel(dataIndex, 'normal'),
40
+ data.get(valueDim, dataIndex)
41
+ );
42
+ }
43
+ else {
44
+ elStyle.text = '';
45
+ }
46
+ };
47
+
48
+ module.exports = helper;
@@ -6,10 +6,6 @@
6
6
  var WhiskerBoxDraw = require('../helper/WhiskerBoxDraw');
7
7
  var zrUtil = require('zrender/lib/core/util');
8
8
 
9
- function getItemValue(item) {
10
- return item.value == null ? item : item.value;
11
- }
12
-
13
9
  var seriesModelMixin = {
14
10
 
15
11
  /**
@@ -51,52 +47,36 @@
51
47
  option.layout = option.layout || 'horizontal';
52
48
  }
53
49
 
54
- this._baseAxisDim = option.layout === 'horizontal' ? 'x' : 'y';
55
-
50
+ var coordDims = ['x', 'y'];
51
+ var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;
52
+ var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];
53
+ var otherAxisDim = coordDims[1 - baseAxisDimIndex];
56
54
  var data = option.data;
57
- var dimensions = this.dimensions = ['base'].concat(this.valueDimensions);
58
- completeDimensions(dimensions, data);
59
55
 
60
- var list = new List(dimensions, this);
61
- list.initData(data, categories ? categories.slice() : null, function (dataItem, dimName, idx, dimIdx) {
62
- var value = getItemValue(dataItem);
63
- return addOrdinal ? (dimName === 'base' ? idx : value[dimIdx - 1]) : value[dimIdx];
56
+ addOrdinal && zrUtil.each(data, function (item, index) {
57
+ zrUtil.isArray(item) && item.unshift(index);
64
58
  });
65
59
 
66
- return list;
67
- },
68
-
69
- /**
70
- * Used by Gird.
71
- * @param {string} axisDim 'x' or 'y'
72
- * @return {Array.<string>} dimensions on the axis.
73
- */
74
- coordDimToDataDim: function (axisDim) {
75
- var dims = this.valueDimensions.slice();
76
- var baseDim = ['base'];
77
- var map = {
78
- horizontal: {x: baseDim, y: dims},
79
- vertical: {x: dims, y: baseDim}
80
- };
81
- return map[this.get('layout')][axisDim];
82
- },
83
-
84
- /**
85
- * @override
86
- * @param {string|number} dataDim
87
- * @return {string} coord dimension
88
- */
89
- dataDimToCoordDim: function (dataDim) {
90
- var dim;
60
+ var dimensions = [{
61
+ name: baseAxisDim,
62
+ otherDims: {
63
+ tooltip: false
64
+ },
65
+ dimsDef: ['base']
66
+ }, {
67
+ name: otherAxisDim,
68
+ dimsDef: this.defaultValueDimensions.slice()
69
+ }];
70
+
71
+ dimensions = completeDimensions(dimensions, data, {
72
+ encodeDef: this.get('encode'),
73
+ dimsDef: this.get('dimensions')
74
+ });
91
75
 
92
- zrUtil.each(['x', 'y'], function (coordDim, index) {
93
- var dataDims = this.coordDimToDataDim(coordDim);
94
- if (zrUtil.indexOf(dataDims, dataDim) >= 0) {
95
- dim = coordDim;
96
- }
97
- }, this);
76
+ var list = new List(dimensions, this);
77
+ list.initData(data, categories ? categories.slice() : null);
98
78
 
99
- return dim;
79
+ return list;
100
80
  },
101
81
 
102
82
  /**
@@ -107,6 +87,7 @@
107
87
  var dim = this._baseAxisDim;
108
88
  return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;
109
89
  }
90
+
110
91
  };
111
92
 
112
93
  var viewMixin = {
@@ -14,24 +14,25 @@
14
14
 
15
15
  zrUtil.each(datas, function (data) {
16
16
  data.each(dims, function (value, idx) {
17
- var name = data.getName(idx);
18
- dataNameMap[name] = dataNameMap[name] || [];
17
+ // Add prefix to avoid conflict with Object.prototype.
18
+ var mapKey = 'ec-' + data.getName(idx);
19
+ dataNameMap[mapKey] = dataNameMap[mapKey] || [];
19
20
  if (!isNaN(value)) {
20
- dataNameMap[name].push(value);
21
+ dataNameMap[mapKey].push(value);
21
22
  }
22
23
  });
23
24
  });
24
25
 
25
26
  return datas[0].map(dims, function (value, idx) {
26
- var name = datas[0].getName(idx);
27
+ var mapKey = 'ec-' + datas[0].getName(idx);
27
28
  var sum = 0;
28
29
  var min = Infinity;
29
30
  var max = -Infinity;
30
- var len = dataNameMap[name].length;
31
+ var len = dataNameMap[mapKey].length;
31
32
  for (var i = 0; i < len; i++) {
32
- min = Math.min(min, dataNameMap[name][i]);
33
- max = Math.max(max, dataNameMap[name][i]);
34
- sum += dataNameMap[name][i];
33
+ min = Math.min(min, dataNameMap[mapKey][i]);
34
+ max = Math.max(max, dataNameMap[mapKey][i]);
35
+ sum += dataNameMap[mapKey][i];
35
36
  }
36
37
  var result;
37
38
  if (statisticType === 'min') {
@@ -1,5 +1,3 @@
1
- // TODO minAngle
2
-
3
1
 
4
2
 
5
3
  var numberUtil = require('../../util/number');
@@ -36,9 +34,14 @@
36
34
 
37
35
  var minAngle = seriesModel.get('minAngle') * RADIAN;
38
36
 
37
+ var validDataCount = 0;
38
+ data.each('value', function (value) {
39
+ !isNaN(value) && validDataCount++;
40
+ });
41
+
39
42
  var sum = data.getSum('value');
40
43
  // Sum may be 0
41
- var unitRadian = Math.PI / (sum || data.count()) * 2;
44
+ var unitRadian = Math.PI / (sum || validDataCount) * 2;
42
45
 
43
46
  var clockwise = seriesModel.get('clockwise');
44
47
 
@@ -54,8 +57,8 @@
54
57
  var valueSumLargerThanMinAngle = 0;
55
58
 
56
59
  var currentAngle = startAngle;
57
-
58
60
  var dir = clockwise ? 1 : -1;
61
+
59
62
  data.each('value', function (value, idx) {
60
63
  var angle;
61
64
  if (isNaN(value)) {
@@ -80,7 +83,7 @@
80
83
  ? unitRadian : (value * unitRadian);
81
84
  }
82
85
  else {
83
- angle = PI2 / (data.count() || 1);
86
+ angle = PI2 / validDataCount;
84
87
  }
85
88
 
86
89
  if (angle < minAngle) {
@@ -110,27 +113,32 @@
110
113
 
111
114
  // Some sector is constrained by minAngle
112
115
  // Rest sectors needs recalculate angle
113
- if (restAngle < PI2) {
116
+ if (restAngle < PI2 && validDataCount) {
114
117
  // Average the angle if rest angle is not enough after all angles is
115
118
  // Constrained by minAngle
116
119
  if (restAngle <= 1e-3) {
117
- var angle = PI2 / data.count();
118
- data.each(function (idx) {
119
- var layout = data.getItemLayout(idx);
120
- layout.startAngle = startAngle + dir * idx * angle;
121
- layout.endAngle = startAngle + dir * (idx + 1) * angle;
120
+ var angle = PI2 / validDataCount;
121
+ data.each('value', function (value, idx) {
122
+ if (!isNaN(value)) {
123
+ var layout = data.getItemLayout(idx);
124
+ layout.angle = angle;
125
+ layout.startAngle = startAngle + dir * idx * angle;
126
+ layout.endAngle = startAngle + dir * (idx + 1) * angle;
127
+ }
122
128
  });
123
129
  }
124
130
  else {
125
131
  unitRadian = restAngle / valueSumLargerThanMinAngle;
126
132
  currentAngle = startAngle;
127
133
  data.each('value', function (value, idx) {
128
- var layout = data.getItemLayout(idx);
129
- var angle = layout.angle === minAngle
130
- ? minAngle : value * unitRadian;
131
- layout.startAngle = currentAngle;
132
- layout.endAngle = currentAngle + dir * angle;
133
- currentAngle += dir * angle;
134
+ if (!isNaN(value)) {
135
+ var layout = data.getItemLayout(idx);
136
+ var angle = layout.angle === minAngle
137
+ ? minAngle : value * unitRadian;
138
+ layout.startAngle = currentAngle;
139
+ layout.endAngle = currentAngle + dir * angle;
140
+ currentAngle += dir * angle;
141
+ }
134
142
  });
135
143
  }
136
144
  }
@@ -28,7 +28,7 @@
28
28
  getInitialData: function (option, ecModel) {
29
29
  var data = option.data || [];
30
30
  var dimensions = completeDimensions(
31
- [], data, {extraPrefix: 'indicator_'}
31
+ [], data, {extraPrefix: 'indicator_', extraFromZero: true}
32
32
  );
33
33
  var list = new List(dimensions, this);
34
34
  list.initData(data);
@@ -8,11 +8,10 @@
8
8
 
9
9
  type: 'series.scatter',
10
10
 
11
- dependencies: ['grid', 'polar', 'geo', 'singleAxis'],
11
+ dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],
12
12
 
13
13
  getInitialData: function (option, ecModel) {
14
- var list = createListFromArray(option.data, this, ecModel);
15
- return list;
14
+ return createListFromArray(option.data, this, ecModel);
16
15
  },
17
16
 
18
17
  brushSelector: 'point',
@@ -23,7 +23,7 @@
23
23
 
24
24
  /**
25
25
  * @readOnly
26
- * @type {Object}
26
+ * @type {module:zrender/core/util#HashMap}
27
27
  */
28
28
  nameMap: null,
29
29
 
@@ -150,17 +150,18 @@
150
150
 
151
151
  var data = this.fixData(filterData || []);
152
152
  var nameList = [];
153
- var nameMap = this.nameMap = {};
153
+ var nameMap = this.nameMap = zrUtil.createHashMap();
154
154
  var count = 0;
155
155
 
156
156
  for (var i = 0; i < data.length; ++i) {
157
157
  nameList.push(data[i][DATA_NAME_INDEX]);
158
- if (!nameMap[data[i][DATA_NAME_INDEX]]) {
159
- nameMap[data[i][DATA_NAME_INDEX]] = count++;
158
+ if (!nameMap.get(data[i][DATA_NAME_INDEX])) {
159
+ nameMap.set(data[i][DATA_NAME_INDEX], count);
160
+ count++;
160
161
  }
161
162
  }
162
163
 
163
- completeDimensions(dimensions, data);
164
+ dimensions = completeDimensions(dimensions, data);
164
165
 
165
166
  var list = new List(dimensions, this);
166
167
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  data.each(function (index) {
14
14
  var name = data.getName(index);
15
- var color = colorList[(seriesModel.nameMap[name] - 1) % colorList.length];
15
+ var color = colorList[(seriesModel.nameMap.get(name) - 1) % colorList.length];
16
16
  rawData.setItemVisual(index, 'color', color);
17
17
  });
18
18
  });
@@ -237,7 +237,7 @@
237
237
  var idIndexMap = this._idIndexMap;
238
238
 
239
239
  if (!idIndexMap) {
240
- idIndexMap = this._idIndexMap = {};
240
+ idIndexMap = this._idIndexMap = zrUtil.createHashMap();
241
241
  /**
242
242
  * @private
243
243
  * @type {number}
@@ -245,9 +245,9 @@
245
245
  this._idIndexMapCount = 0;
246
246
  }
247
247
 
248
- var index = idIndexMap[id];
248
+ var index = idIndexMap.get(id);
249
249
  if (index == null) {
250
- idIndexMap[id] = index = this._idIndexMapCount++;
250
+ idIndexMap.set(id, index = this._idIndexMapCount++);
251
251
  }
252
252
 
253
253
  return index;
@@ -358,16 +358,17 @@
358
358
  }
359
359
 
360
360
  var payloadInfo = this._payloadInfo;
361
- var payload = {
361
+ var axisModel = this._axisModel;
362
+ this._api.dispatchAction({
362
363
  type: 'updateAxisPointer',
363
364
  x: payloadInfo.cursorPoint[0],
364
365
  y: payloadInfo.cursorPoint[1],
365
366
  tooltipOption: payloadInfo.tooltipOption,
366
- highDownKey: 'axisPointerHandle'
367
- };
368
- var axis = this._axisModel.axis;
369
- payload[axis.dim + 'AxisId'] = this._axisModel.id;
370
- this._api.dispatchAction(payload);
367
+ axesInfo: [{
368
+ axisDim: axisModel.axis.dim,
369
+ axisIndex: axisModel.componentIndex
370
+ }]
371
+ });
371
372
  },
372
373
 
373
374
  /**