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