From c326e50f886767863b71eebd1ea5ea5423529536 Mon Sep 17 00:00:00 2001 From: lang Date: Thu, 27 Aug 2015 11:24:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A9=BA=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecn.todo | 1 + src/chart/bar/BarView.js | 10 ++++++++++ src/chart/bar/barLayoutGrid.js | 7 +++++++ src/coord/cartesian/Axis.js | 5 +++++ src/coord/cartesian/Grid.js | 4 +++- src/data/List.js | 11 +++++++++-- src/scale/Interval.js | 6 ++++-- 7 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 ecn.todo diff --git a/ecn.todo b/ecn.todo new file mode 100644 index 000000000..81b651deb --- /dev/null +++ b/ecn.todo @@ -0,0 +1 @@ +Default Option \ No newline at end of file diff --git a/src/chart/bar/BarView.js b/src/chart/bar/BarView.js index 9b8c525e6..dcff57327 100644 --- a/src/chart/bar/BarView.js +++ b/src/chart/bar/BarView.js @@ -20,6 +20,11 @@ define(function (require) { data.diff(this.data) .add(function (dataItem, idx) { + // 空数据 + if (dataItem.getValue() == null) { + return; + } + var layout = dataItem.layout; var normalItemStyle = dataItem.getModel('itemStyle.normal'); var rect = new api.Rect({ @@ -47,6 +52,11 @@ define(function (require) { .start('cubicOut'); }) .update(function (newData, oldData) { + // 空数据 + if (newData.getValue() == null) { + group.remove(oldData.__el); + return; + } // TODO DONT ANIMATE WHEN PROPERTIES ARE EQUAL oldData.__el.animateShape() .when(500, newData.layout) diff --git a/src/chart/bar/barLayoutGrid.js b/src/chart/bar/barLayoutGrid.js index 3294ffddc..bb3150144 100644 --- a/src/chart/bar/barLayoutGrid.js +++ b/src/chart/bar/barLayoutGrid.js @@ -144,6 +144,13 @@ define(function(require) { var coords = cartesian.dataToCoords(data); lastStackCoords[stackId] = lastStackCoords[stackId] || []; data.each(function (dataItem, dataIndex) { + + var value = dataItem.getValue(); + // 空数据 + if (value == null) { + return; + } + var coord = coords[dataIndex]; var lastCoord = lastStackCoords[stackId][dataIndex] || projectAxis.otherCoord; var x, y, width, height; diff --git a/src/coord/cartesian/Axis.js b/src/coord/cartesian/Axis.js index 1970cf1fb..5169132e1 100644 --- a/src/coord/cartesian/Axis.js +++ b/src/coord/cartesian/Axis.js @@ -61,6 +61,11 @@ define(function (require) { * @return {number} */ dataToCoord: function (data, clamp) { + // PENDING + if (data == null || data === '-') { + return NaN; + } + data = this.scale.normalize(data); return linearMap(data, [0, 1], this._coordExtent, clamp); diff --git a/src/coord/cartesian/Grid.js b/src/coord/cartesian/Grid.js index 624e1e43a..7aee72d1e 100644 --- a/src/coord/cartesian/Grid.js +++ b/src/coord/cartesian/Grid.js @@ -255,7 +255,9 @@ define(function(require, factory) { } else { data.eachValue(function (value) { - axisData[categoryAxis.dim == 'y' ? 'x' : 'y'].push(value); + if (value != null) { + axisData[categoryAxis.dim == 'y' ? 'x' : 'y'].push(value); + } }); } } diff --git a/src/data/List.js b/src/data/List.js index 8cfd6a20d..260da871b 100644 --- a/src/data/List.js +++ b/src/data/List.js @@ -119,12 +119,19 @@ define(function(require) { * @return {number} */ getValue: function () { + var value; // PENDING // Value is a single number if data is 1d if (this.dimension === 1) { - return this._value; + value = this._value; } - return this._value[this.dimension]; + else { + value = this._value[this.dimension]; + } + if (value === '-') { + value = null; + } + return value; }, /** diff --git a/src/scale/Interval.js b/src/scale/Interval.js index d7b3d3082..d3341644b 100644 --- a/src/scale/Interval.js +++ b/src/scale/Interval.js @@ -67,8 +67,10 @@ define(function (require) { setExtentFromData: function (data) { var max = -Infinity; var min = Infinity; - var i = 0; - for (; i < data.length; i++) { + for (var i = 0; i < data.length; i++) { + if (data[i] == null || data[i] === '-') { + continue; + } max = Math.max(data[i], max); min = Math.min(data[i], min); } -- GitLab