This is an automated email from the ASF dual-hosted git repository.

sushuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git

commit 4892beb1c77793f4ef7979ce1c9adf515e506827
Author: sushuang <sushuang0...@gmail.com>
AuthorDate: Mon Apr 16 23:08:14 2018 +0800

    tweak empty axis.
---
 src/coord/axisHelper.js  | 10 ++++--
 src/data/List.js         |  4 +--
 src/scale/Ordinal.js     |  9 +++++-
 test/axis-interval2.html | 79 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 96 insertions(+), 6 deletions(-)

diff --git a/src/coord/axisHelper.js b/src/coord/axisHelper.js
index 1fca668..d7c14e0 100644
--- a/src/coord/axisHelper.js
+++ b/src/coord/axisHelper.js
@@ -98,7 +98,11 @@ export function getScaleExtent(scale, model) {
     (min == null || !isFinite(min)) && (min = NaN);
     (max == null || !isFinite(max)) && (max = NaN);
 
-    scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max));
+    scale.setBlank(
+        zrUtil.eqNaN(min)
+        || zrUtil.eqNaN(max)
+        || (scaleType === 'ordinal' && 
!scale.getOrdinalMeta().categories.length)
+    );
 
     // Evaluate if axis needs cross zero
     if (model.getNeedCrossZero()) {
@@ -307,12 +311,12 @@ export function getAxisRawValue(axis, value) {
  */
 export function estimateLabelUnionRect(axis) {
     var axisModel = axis.model;
+    var scale = axis.scale;
 
-    if (!axisModel.get('axisLabel.show')) {
+    if (!axisModel.get('axisLabel.show') || scale.isBlank()) {
         return;
     }
 
-    var scale = axis.scale;
     var isCategory = axis.type === 'category';
 
     var realNumberScaleTicks;
diff --git a/src/data/List.js b/src/data/List.js
index 4ae8494..2ee3f69 100644
--- a/src/data/List.js
+++ b/src/data/List.js
@@ -525,7 +525,7 @@ listProto._initDataFromProvider = function (start, end) {
                     if (nameDimChunk) {
                         name = nameDimChunk[chunkOffset];
                         var ordinalMeta = 
dimensionInfoMap[nameDim].ordinalMeta;
-                        if (ordinalMeta) {
+                        if (ordinalMeta && ordinalMeta.categories.length) {
                             name = ordinalMeta.categories[name];
                         }
                     }
@@ -597,7 +597,7 @@ function getRawValueFromStore(list, dimIndex, rawIndex) {
         if (chunk) {
             val = chunk[chunkOffset];
             var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;
-            if (ordinalMeta) {
+            if (ordinalMeta && ordinalMeta.categories.length) {
                 val = ordinalMeta.categories[val];
             }
         }
diff --git a/src/scale/Ordinal.js b/src/scale/Ordinal.js
index 0e2b863..916e9b8 100644
--- a/src/scale/Ordinal.js
+++ b/src/scale/Ordinal.js
@@ -78,7 +78,10 @@ var OrdinalScale = Scale.extend({
      * @return {string}
      */
     getLabel: function (n) {
-        return this._ordinalMeta.categories[n];
+        if (!this.isBlank()) {
+            // Note that if no data, ordinalMeta.categories is an empty array.
+            return this._ordinalMeta.categories[n];
+        }
     },
 
     /**
@@ -95,6 +98,10 @@ var OrdinalScale = Scale.extend({
         this.unionExtent(data.getApproximateExtent(dim));
     },
 
+    getOrdinalMeta: function () {
+        return this._ordinalMeta;
+    },
+
     niceTicks: zrUtil.noop,
     niceExtent: zrUtil.noop
 });
diff --git a/test/axis-interval2.html b/test/axis-interval2.html
index 8782df9..53980f5 100644
--- a/test/axis-interval2.html
+++ b/test/axis-interval2.html
@@ -33,6 +33,7 @@
         <div class="chart" id="main4"></div>
         <div class="chart" id="main5"></div>
         <div class="chart" id="main6"></div>
+        <div class="chart" id="main7"></div>
 
 
         <script>
@@ -935,5 +936,83 @@
 
 
 
+        <script>
+
+            require([
+                'echarts'
+            ], function (echarts) {
+
+                var xAxisData = [];
+                var data1 = [];
+                var data3 = [];
+
+                for (var i = 0; i < 100; i++) {
+                    xAxisData.push('c' + i);
+                    data1.push((Math.random() * 5).toFixed(2));
+                    data3.push((Math.random() + 0.5).toFixed(2));
+                }
+
+                var option = {
+                    legend: {
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'shadow'
+                        }
+                    },
+                    xAxis: {
+                        type: 'category',
+                        axisTick: {
+                            alignWithLabel: true
+                        },
+                        axisLabel: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: true
+                        },
+                        min: -300,
+                        max: 333333
+                    },
+                    yAxis: {
+                        axisLabel: {
+                            show: false
+                        },
+                        splitArea: {
+                            show: false
+                        }
+                    },
+                    dataZoom: [{
+                        type: 'inside'
+                    }, {
+                    }],
+                    series: [{
+                        name: 'bar',
+                        type: 'bar',
+                        stack: 'one',
+                        cursor: 'move'
+                    }]
+                };
+
+                chart = myChart = testHelper.create(echarts, 'main7', {
+                    title: [
+                        'No data but has xAxis.min and xAxis.max, should no 
ticks and labels.',
+                        'label.show: false, should no dead loop.'
+                    ],
+                    option: option,
+                    info: {xAxis: option.xAxis}
+                });
+            });
+
+        </script>
+
+
+
+
+
+
+
+
     </body>
 </html>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
sushu...@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to