From 5a6f8a361cad4b3c0d2a6dda04503bdf29f6a0b6 Mon Sep 17 00:00:00 2001 From: lang Date: Wed, 2 Dec 2015 20:33:27 +0800 Subject: [PATCH] A bunch of tweaks --- src/chart/helper/createListFromArray.js | 11 +++++++---- src/chart/line/LineSeries.js | 4 ++-- src/chart/line/LineView.js | 4 ++-- src/chart/treemap/TreemapView.js | 2 +- src/component/marker/MarkLineModel.js | 3 ++- src/coord/axisDefault.js | 6 +++++- src/coord/axisModelCommonMixin.js | 23 ++++++++++++++++------- src/coord/cartesian/axisLabelInterval.js | 1 + src/preprocessor/helper/compatStyle.js | 2 +- src/util/symbol.js | 16 +++++++++------- 10 files changed, 46 insertions(+), 26 deletions(-) diff --git a/src/chart/helper/createListFromArray.js b/src/chart/helper/createListFromArray.js index 83c583d10..26e2b1bae 100644 --- a/src/chart/helper/createListFromArray.js +++ b/src/chart/helper/createListFromArray.js @@ -24,6 +24,9 @@ define(function(require) { return list; } + function isStackable(axisType) { + return axisType !== 'category' && axisType !== 'time'; + } /** * Creaters for each coord system. * @return {Object} {dimensions, categoryAxisModel}; @@ -46,7 +49,7 @@ define(function(require) { name: 'y', // If two category axes type: isYAxisCategory ? 'ordinal' : 'float', - stackable: !isYAxisCategory + stackable: isStackable(yAxisType) }]; categoryAxisModel = xAxisModel; @@ -57,7 +60,7 @@ define(function(require) { type: 'ordinal' }, { name: 'x', - stackable: true + stackable: isStackable(xAxisType) }]; categoryAxisModel = yAxisModel; @@ -93,7 +96,7 @@ define(function(require) { name: 'radius', // If two category axes type: isRadiusAxisCategory ? 'ordinal' : 'float', - stackable: !isRadiusAxisCategory + stackable: isStackable(radiusAxisModel.get('type')) }]; categoryAxisModel = angleAxisModel; @@ -104,7 +107,7 @@ define(function(require) { type: 'ordinal' }, { name: 'angle', - stackable: true + stackable: isStackable(angleAxisModel.get('type')) }]; categoryAxisModel = radiusAxisModel; diff --git a/src/chart/line/LineSeries.js b/src/chart/line/LineSeries.js index 721dcc70a..f62395a34 100644 --- a/src/chart/line/LineSeries.js +++ b/src/chart/line/LineSeries.js @@ -68,8 +68,8 @@ define(function(require) { // 拐点图形旋转控制 // symbolRotate: null, - // 不显示 symbol, 只有在 tooltip hover 的时候显示 - // notShowSymbol: false, + // 是否显示 symbol, 只有在 tooltip hover 的时候显示 + showSymbol: true, // 标志图形默认只有主轴显示(随主轴标签间隔隐藏策略) // showAllSymbol: false diff --git a/src/chart/line/LineView.js b/src/chart/line/LineView.js index d221cd31e..7693e4aaf 100644 --- a/src/chart/line/LineView.js +++ b/src/chart/line/LineView.js @@ -192,7 +192,7 @@ define(function(require) { var isAreaChart = !areaStyleModel.isEmpty(); var stackedOnPoints = getStackedOnPoints(coordSys, data); - var showSymbol = !seriesModel.get('notShowSymbol'); + var showSymbol = seriesModel.get('showSymbol'); var isSymbolIgnore = showSymbol && !isCoordSysPolar && !seriesModel.get('showAllSymbol') && this._getSymbolIgnoreFunc(data, coordSys); @@ -206,7 +206,7 @@ define(function(require) { } }); - // Remove previous created symbols if notShowSymbol changed to true + // Remove previous created symbols if showSymbol changed to false if (!showSymbol) { symbolDraw.remove(); } diff --git a/src/chart/treemap/TreemapView.js b/src/chart/treemap/TreemapView.js index 50440ca53..71429bcf5 100644 --- a/src/chart/treemap/TreemapView.js +++ b/src/chart/treemap/TreemapView.js @@ -651,7 +651,7 @@ * @override */ remove: function () { - this._containerGroup.removeAll(); + this._containerGroup && this._containerGroup.removeAll(); this._storage = createStorage(); this._state = 'ready'; this._breadcrumb && this._breadcrumb.remove(); diff --git a/src/component/marker/MarkLineModel.js b/src/component/marker/MarkLineModel.js index 9d2454b31..7a3b1f2e9 100644 --- a/src/component/marker/MarkLineModel.js +++ b/src/component/marker/MarkLineModel.js @@ -109,7 +109,8 @@ define(function (require) { borderWidth: 2 } // emphasis: {} - } + }, + animationEasing: 'linear' } }); diff --git a/src/coord/axisDefault.js b/src/coord/axisDefault.js index 899f591db..ef29d817c 100644 --- a/src/coord/axisDefault.js +++ b/src/coord/axisDefault.js @@ -104,7 +104,11 @@ define(function (require) { }, defaultOption); // FIXME - var timeAxis = zrUtil.merge({}, valueAxis); + var timeAxis = zrUtil.merge({ + scale: true, + min: 'dataMin', + max: 'dataMax' + }, valueAxis); var logAxis = zrUtil.merge({}, valueAxis); logAxis.scale = true; diff --git a/src/coord/axisModelCommonMixin.js b/src/coord/axisModelCommonMixin.js index 3bbec875c..c54b5d6f2 100644 --- a/src/coord/axisModelCommonMixin.js +++ b/src/coord/axisModelCommonMixin.js @@ -24,19 +24,28 @@ define(function (require) { */ function getFormattedLabels () { var labelFormatter = this.get('axisLabel.formatter'); - var labels = this.axis.scale.getTicksLabels(); - if (!labelFormatter) { - return labels; - } - else if (typeof labelFormatter === 'string') { + var axis = this.axis; + var scale = axis.scale; + var labels = scale.getTicksLabels(); + var ticks = scale.getTicks(); + if (typeof labelFormatter === 'string') { labelFormatter = (function (tpl) { return function (val) { return tpl.replace('{value}', val); }; })(labelFormatter); + return zrUtil.map(labels, labelFormatter); + } + else if (typeof labelFormatter === 'function') { + return zrUtil.map(ticks, function (tick) { + return labelFormatter( + axis.type === 'category' ? scale.getLabel(tick) : tick + ); + }, this); + } + else { + return labels; } - - return zrUtil.map(labels, labelFormatter); } return { diff --git a/src/coord/cartesian/axisLabelInterval.js b/src/coord/cartesian/axisLabelInterval.js index ab82f5c0b..80df1fcad 100644 --- a/src/coord/cartesian/axisLabelInterval.js +++ b/src/coord/cartesian/axisLabelInterval.js @@ -37,6 +37,7 @@ define(function(require) { labels[i], font, 'center', 'top' ); rect[isAxisHorizontal ? 'x' : 'y'] += tickCoord; + rect[isAxisHorizontal ? 'width' : 'height'] *= 1.5; if (!textSpaceTakenRect) { textSpaceTakenRect = rect.clone(); } diff --git a/src/preprocessor/helper/compatStyle.js b/src/preprocessor/helper/compatStyle.js index 5fcd2adc1..cb02cccc9 100644 --- a/src/preprocessor/helper/compatStyle.js +++ b/src/preprocessor/helper/compatStyle.js @@ -8,7 +8,7 @@ define(function (require) { ]; function compatItemStyle(opt) { - var itemStyleOpt = opt.itemStyle; + var itemStyleOpt = opt && opt.itemStyle; if (itemStyleOpt) { zrUtil.each(POSSIBLE_STYLES, function (styleName) { var normalItemStyleOpt = itemStyleOpt.normal; diff --git a/src/util/symbol.js b/src/util/symbol.js index 81ed78e56..eb4a0248b 100644 --- a/src/util/symbol.js +++ b/src/util/symbol.js @@ -259,9 +259,15 @@ define(function(require) { }, buildPath: function (ctx, shape) { - var proxySymbol = symbolBuildProxies[shape.symbolType]; - if (proxySymbol) { - symbolShapeMakers[shape.symbolType]( + var symbolType = shape.symbolType; + var proxySymbol = symbolBuildProxies[symbolType]; + if (shape.symbolType !== 'none') { + if (!proxySymbol) { + // Default rect + symbolType = 'rect'; + proxySymbol = symbolBuildProxies[symbolType]; + } + symbolShapeMakers[symbolType]( shape.x, shape.y, shape.width, shape.height, proxySymbol.shape ); proxySymbol.buildPath(ctx, proxySymbol.shape); @@ -322,10 +328,6 @@ define(function(require) { symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h)); } else { - // Default rect - if (!symbolShapeMakers[symbolType]) { - symbolType = 'rect'; - } symbolPath = new Symbol({ shape: { symbolType: symbolType, -- GitLab