From 66125488e009f241989dff4e61dc842261f0311f Mon Sep 17 00:00:00 2001 From: lang Date: Tue, 8 Sep 2015 15:46:38 +0800 Subject: [PATCH] Fix bug when ordinal scale only has one data --- src/chart/helper/DataSymbol.js | 1 - src/chart/line/LineView.js | 16 ++++++++-------- src/coord/Axis.js | 8 ++++---- src/scale/Ordinal.js | 7 ++++++- src/util/number.js | 2 +- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/chart/helper/DataSymbol.js b/src/chart/helper/DataSymbol.js index 3231f5047..fa1a28ce4 100644 --- a/src/chart/helper/DataSymbol.js +++ b/src/chart/helper/DataSymbol.js @@ -101,7 +101,6 @@ define(function (require) { var group = this.group; this._data.each(function (dataItem) { var el = dataItem.__el; - el.stopAnimation(); el.animateTo({ scale: [0, 0] }, 200, 'cubicOut', function () { diff --git a/src/chart/line/LineView.js b/src/chart/line/LineView.js index a70c750d3..359e78a17 100644 --- a/src/chart/line/LineView.js +++ b/src/chart/line/LineView.js @@ -39,14 +39,6 @@ define(function(require) { // Initialization animation if (!this._data) { - var removeClipPath = zrUtil.bind(group.removeClipPath, group); - - var clipPath = isCoordinateSystemPolar - ? this._createPolarClipShape(coordinateSystem, api, removeClipPath) - : this._createGridClipShape(coordinateSystem, api, removeClipPath); - - group.setClipPath(clipPath); - var polyline = new api.Polyline({ shape: { points: points @@ -59,6 +51,14 @@ define(function(require) { ) }); + var removeClipPath = zrUtil.bind(polyline.removeClipPath, polyline); + + var clipPath = isCoordinateSystemPolar + ? this._createPolarClipShape(coordinateSystem, api, removeClipPath) + : this._createGridClipShape(coordinateSystem, api, removeClipPath); + + polyline.setClipPath(clipPath); + group.add(polyline); this._polyline = polyline; diff --git a/src/coord/Axis.js b/src/coord/Axis.js index e1cddad99..196173832 100644 --- a/src/coord/Axis.js +++ b/src/coord/Axis.js @@ -161,15 +161,15 @@ define(function (require) { getBands: function () { var extent = this._extent; var bands = []; - var len = this.scale.count() + 1; + var len = this.scale.count(); var start = extent[0]; var end = extent[1]; var size = end - start; - for (var i = 1; i <= len; i++) { + for (var i = 0; i < len; i++) { bands.push([ - size * (i - 1) / len + start, - size * i / len + start + size * i / len + start, + size * (i + 1) / len + start ]); } return bands; diff --git a/src/scale/Ordinal.js b/src/scale/Ordinal.js index 1f90d33b4..311784da4 100644 --- a/src/scale/Ordinal.js +++ b/src/scale/Ordinal.js @@ -5,6 +5,7 @@ * http://en.wikipedia.org/wiki/Level_of_measurement */ +// FIXME only one data define(function (require) { /** @@ -37,6 +38,10 @@ define(function (require) { */ normalize: function (val) { var extent = this._extent; + // Only one data + if (extent[1] === extent[0]) { + return extent[0]; + } return (val - extent[0]) / (extent[1] - extent[0]); }, @@ -112,7 +117,7 @@ define(function (require) { * @return {number} */ count: function () { - return this._extent[1] - this._extent[0]; + return this._extent[1] - this._extent[0] + 1; }, /** diff --git a/src/util/number.js b/src/util/number.js index 2c33440af..6118992f7 100644 --- a/src/util/number.js +++ b/src/util/number.js @@ -22,7 +22,7 @@ define(function (require) { var sub = domain[1] - domain[0]; if (sub === 0) { - return val; + return domain[0]; } var t = (val - domain[0]) / sub; if (clamp) { -- GitLab