You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2018/04/05 20:35:37 UTC
[incubator-echarts] 07/09: refactor candlestick.
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 346af22dc00cc3a084d908eafafdc6d35067d110
Author: sushuang <su...@gmail.com>
AuthorDate: Wed Apr 4 02:55:51 2018 +0800
refactor candlestick.
---
src/chart/candlestick/CandlestickView.js | 255 ++++++++++++++++++++++--
src/chart/candlestick/candlestickLayout.js | 43 ++---
src/chart/candlestick/candlestickVisual.js | 26 ++-
src/chart/helper/WhiskerBoxDraw.js | 300 -----------------------------
src/chart/helper/whiskerBoxCommon.js | 32 ---
test/candlestick.html | 5 +
6 files changed, 276 insertions(+), 385 deletions(-)
diff --git a/src/chart/candlestick/CandlestickView.js b/src/chart/candlestick/CandlestickView.js
index 622cf79..6f8d960 100644
--- a/src/chart/candlestick/CandlestickView.js
+++ b/src/chart/candlestick/CandlestickView.js
@@ -1,30 +1,173 @@
import * as zrUtil from 'zrender/src/core/util';
import ChartView from '../../view/Chart';
import * as graphic from '../../util/graphic';
-import {viewMixin} from '../helper/whiskerBoxCommon';
+import Path from 'zrender/src/graphic/Path';
+
+var NORMAL_ITEM_STYLE_PATH = ['itemStyle'];
+var EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];
var CandlestickView = ChartView.extend({
type: 'candlestick',
- getStyleUpdater: function () {
- return updateStyle;
+ render: function (seriesModel, ecModel, api) {
+ var group = this.group;
+ var data = seriesModel.getData();
+ var oldData = this._data;
+ var pipelineContext = seriesModel.pipelineContext;
+ var isLargeRender = pipelineContext.large;
+ var largePoints = isLargeRender && data.getLayout('largePoints');
+
+ // There is no old data only when first rendering or switching from
+ // stream mode to normal mode, where previous elements should be removed.
+ if (!this._data) {
+ group.removeAll();
+ }
+
+ data.diff(oldData)
+ .add(function (newIdx) {
+ if (data.hasValue(newIdx)) {
+ var symbolEl = isLargeRender
+ ? createLargeBox(data, largePoints, newIdx)
+ : createNormalBox(data, newIdx, true);
+ data.setItemGraphicEl(newIdx, symbolEl);
+ group.add(symbolEl);
+ }
+ })
+ .update(function (newIdx, oldIdx) {
+ var symbolEl = oldData.getItemGraphicEl(oldIdx);
+
+ // Empty data
+ if (!data.hasValue(newIdx)) {
+ group.remove(symbolEl);
+ return;
+ }
+
+ if (symbolEl && symbolEl.__largeWhiskerBox ^ isLargeRender) {
+ group.remove(symbolEl);
+ symbolEl = null;
+ }
+
+ if (!symbolEl) {
+ symbolEl = isLargeRender
+ ? createLargeBox(data, largePoints, newIdx)
+ : createNormalBox(data, newIdx);
+ }
+ else {
+ isLargeRender
+ ? updateLargeBoxData(symbolEl, data, newIdx)
+ : updateNormalBoxData(symbolEl, data, newIdx);
+ }
+
+ // Add back
+ group.add(symbolEl);
+
+ data.setItemGraphicEl(newIdx, symbolEl);
+ })
+ .remove(function (oldIdx) {
+ var el = oldData.getItemGraphicEl(oldIdx);
+ el && group.remove(el);
+ })
+ .execute();
+
+ this._data = data;
},
- dispose: zrUtil.noop
+ incrementalPrepareRender: function (seriesModel, ecModel, api) {
+ this.group.removeAll();
+ this._data = null;
+ },
+
+ incrementalRender: function (params, seriesModel, ecModel, api) {
+ var data = seriesModel.getData();
+ var pipelineContext = seriesModel.pipelineContext;
+ var isLargeRender = pipelineContext.large;
+ var largePoints = isLargeRender && data.getLayout('largePoints');
+
+ for (var idx = params.start; idx < params.end; idx++) {
+ var symbolEl = isLargeRender
+ ? createLargeBox(data, largePoints, idx, params.start)
+ : createNormalBox(data, idx, this.styleUpdater, true);
+ symbolEl.incremental = true;
+ this.group.add(symbolEl);
+ }
+ },
+
+ remove: function (ecModel) {
+ var group = this.group;
+ var data = this._data;
+ this._data = null;
+ data && data.eachItemGraphicEl(function (el) {
+ el && group.remove(el);
+ });
+ }
+
});
-zrUtil.mixin(CandlestickView, viewMixin, true);
-// Update common properties
-var normalStyleAccessPath = ['itemStyle'];
-var emphasisStyleAccessPath = ['emphasis', 'itemStyle'];
-function updateStyle(data, idx, boxEl, whiskerEl, bodyEl) {
- var itemModel = data.getItemModel(idx);
- var normalItemStyleModel = itemModel.getModel(normalStyleAccessPath);
- var color = data.getItemVisual(idx, 'color');
- var borderColor = data.getItemVisual(idx, 'borderColor') || color;
+
+
+// ---------------------
+// -- Normal Renderer --
+// ---------------------
+
+var NormalBoxPath = Path.extend({
+
+ type: 'candlestickBox',
+
+ shape: {},
+
+ buildPath: function (ctx, shape) {
+ var ends = shape.points;
+
+ ctx.moveTo(ends[0][0], ends[0][1]);
+ ctx.lineTo(ends[1][0], ends[1][1]);
+ ctx.lineTo(ends[2][0], ends[2][1]);
+ ctx.lineTo(ends[3][0], ends[3][1]);
+ ctx.closePath();
+
+ ctx.moveTo(ends[4][0], ends[4][1]);
+ ctx.lineTo(ends[5][0], ends[5][1]);
+ ctx.moveTo(ends[6][0], ends[6][1]);
+ ctx.lineTo(ends[7][0], ends[7][1]);
+ }
+});
+
+function createNormalBox(data, dataIndex, isInit) {
+ var itemLayout = data.getItemLayout(dataIndex);
+ var ends = itemLayout.ends;
+
+ var el = new NormalBoxPath({
+ shape: {
+ points: isInit
+ ? transInit(ends, itemLayout)
+ : ends
+ },
+ z2: 100
+ });
+
+ updateNormalBoxData(el, data, dataIndex, isInit);
+
+ return el;
+}
+
+function updateNormalBoxData(el, data, dataIndex, isInit) {
+ var seriesModel = data.hostModel;
+ var itemLayout = data.getItemLayout(dataIndex);
+ var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];
+
+ updateMethod(
+ el,
+ {shape: {points: itemLayout.ends}},
+ seriesModel,
+ dataIndex
+ );
+
+ var itemModel = data.getItemModel(dataIndex);
+ var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);
+ var color = data.getItemVisual(dataIndex, 'color');
+ var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
// Color must be excluded.
// Because symbol provide setColor individually to set fill and stroke
@@ -32,15 +175,89 @@ function updateStyle(data, idx, boxEl, whiskerEl, bodyEl) {
['color', 'color0', 'borderColor', 'borderColor0']
);
- whiskerEl.useStyle(itemStyle);
- whiskerEl.style.stroke = borderColor;
+ el.useStyle(itemStyle);
+ el.style.strokeNoScale = true;
+ el.style.fill = color;
+ el.style.stroke = borderColor;
- bodyEl.useStyle(itemStyle);
- bodyEl.style.fill = color;
- bodyEl.style.stroke = borderColor;
+ var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();
+ graphic.setHoverStyle(el, hoverStyle);
+}
+
+function transInit(points, itemLayout) {
+ return zrUtil.map(points, function (point) {
+ point = point.slice();
+ point[1] = itemLayout.initBaseline;
+ return point;
+ });
+}
+
+
+
+
+
+
+// --------------------
+// -- Large Renderer --
+// --------------------
+
+var NORMAL_STYLE_ACCESS_PATH = ['itemStyle'];
+var EMPHASIS_STYLE_ACCESS_PATH = ['emphasis', 'itemStyle'];
+
+function createLargeBox(data, largePoints, dataIndex, segmentStart) {
+ var boxEl = new graphic.Line({
+ shape: largeBoxMakeShape(largePoints, dataIndex, segmentStart)
+ });
+
+ boxEl.__largeWhiskerBox = true;
+
+ largeBoxSetStyle(boxEl, data, dataIndex);
+
+ return boxEl;
+}
+
+function largeBoxMakeShape(largePoints, dataIndex, segmentStart) {
+ var baseIdx = (dataIndex - (segmentStart || 0)) * 5;
+ return {
+ x1: largePoints[baseIdx + 1],
+ y1: largePoints[baseIdx + 2],
+ x2: largePoints[baseIdx + 3],
+ y2: largePoints[baseIdx + 4]
+ };
+}
- var hoverStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();
+function updateLargeBoxData(boxEl, data, dataIndex) {
+ graphic.updateProps(
+ boxEl,
+ {shape: largeBoxMakeShape(data.getLayout('largePoints'), dataIndex, 0)},
+ data.hostModel,
+ dataIndex
+ );
+
+ largeBoxSetStyle(boxEl, data, dataIndex);
+}
+
+function largeBoxSetStyle(boxEl, data, dataIndex) {
+ var itemModel = data.getItemModel(dataIndex);
+ var normalItemStyleModel = itemModel.getModel(NORMAL_STYLE_ACCESS_PATH);
+ var color = data.getItemVisual(dataIndex, 'color');
+ var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
+
+ // Color must be excluded.
+ // Because symbol provide setColor individually to set fill and stroke
+ var itemStyle = normalItemStyleModel.getItemStyle(
+ ['color', 'color0', 'borderColor', 'borderColor0']
+ );
+
+ boxEl.useStyle(itemStyle);
+ boxEl.style.stroke = borderColor;
+
+ var hoverStyle = itemModel.getModel(EMPHASIS_STYLE_ACCESS_PATH).getItemStyle();
graphic.setHoverStyle(boxEl, hoverStyle);
}
+
+
+
export default CandlestickView;
+
diff --git a/src/chart/candlestick/candlestickLayout.js b/src/chart/candlestick/candlestickLayout.js
index 929d93b..6fa8fda 100644
--- a/src/chart/candlestick/candlestickLayout.js
+++ b/src/chart/candlestick/candlestickLayout.js
@@ -18,9 +18,8 @@ export default {
var coordSys = seriesModel.coordinateSystem;
var data = seriesModel.getData();
var candleWidth = calculateCandleWidth(seriesModel, data);
- var chartLayout = seriesModel.get('layout');
- var cDimIdx = chartLayout === 'horizontal' ? 0 : 1;
- var vDimIdx = 1 - cDimIdx;
+ var cDimIdx = 0;
+ var vDimIdx = 1;
var coordDims = ['x', 'y'];
var cDim = data.mapDimension(coordDims[cDimIdx]);
var vDims = data.mapDimension(coordDims[vDimIdx], true);
@@ -39,10 +38,7 @@ export default {
function normalProgress(params, data) {
for (var dataIndex = params.start; dataIndex < params.end; dataIndex++) {
- layoutDataItem(dataIndex);
- }
- function layoutDataItem(dataIndex) {
var axisDimVal = data.get(cDim, dataIndex);
var openVal = data.get(openDim, dataIndex);
var closeVal = data.get(closeDim, dataIndex);
@@ -57,28 +53,22 @@ export default {
var lowestPoint = getPoint(lowestVal, axisDimVal);
var highestPoint = getPoint(highestVal, axisDimVal);
- var whiskerEnds = [
- [
- subPixelOptimizePoint(highestPoint),
- subPixelOptimizePoint(ocHighPoint)
- ],
- [
- subPixelOptimizePoint(lowestPoint),
- subPixelOptimizePoint(ocLowPoint)
- ]
- ];
-
- var bodyEnds = [];
- addBodyEnd(bodyEnds, ocHighPoint, 0);
- addBodyEnd(bodyEnds, ocLowPoint, 1);
+ var ends = [];
+ addBodyEnd(ends, ocHighPoint, 0);
+ addBodyEnd(ends, ocLowPoint, 1);
+
+ ends.push(
+ subPixelOptimizePoint(highestPoint),
+ subPixelOptimizePoint(ocHighPoint),
+ subPixelOptimizePoint(lowestPoint),
+ subPixelOptimizePoint(ocLowPoint)
+ );
data.setItemLayout(dataIndex, {
- chartLayout: chartLayout,
sign: getSign(data, dataIndex, openVal, closeVal, closeDim),
initBaseline: openVal > closeVal
? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx], // open point.
- bodyEnds: bodyEnds,
- whiskerEnds: whiskerEnds,
+ ends: ends,
brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)
});
}
@@ -92,7 +82,7 @@ export default {
: coordSys.dataToPoint(p);
}
- function addBodyEnd(bodyEnds, point, start) {
+ function addBodyEnd(ends, point, start) {
var point1 = point.slice();
var point2 = point.slice();
@@ -104,8 +94,8 @@ export default {
);
start
- ? bodyEnds.push(point1, point2)
- : bodyEnds.push(point2, point1);
+ ? ends.push(point1, point2)
+ : ends.push(point2, point1);
}
function makeBrushRect(lowestVal, highestVal, axisDimVal) {
@@ -168,7 +158,6 @@ export default {
data.setLayout('largePoints', points);
data.setLayout('candleWidth', candleWidth);
- data.setLayout('candleWidth', candleWidth);
}
}
};
diff --git a/src/chart/candlestick/candlestickVisual.js b/src/chart/candlestick/candlestickVisual.js
index d4cf012..ad94894 100644
--- a/src/chart/candlestick/candlestickVisual.js
+++ b/src/chart/candlestick/candlestickVisual.js
@@ -22,7 +22,11 @@ export default {
var largePoints = isLargeRender && data.getLayout('largePoints');
data.setVisual({
- legendSymbol: 'roundRect'
+ legendSymbol: 'roundRect',
+ colorP: getColor(1, seriesModel),
+ colorN: getColor(-1, seriesModel),
+ borderColorP: getBorderColor(1, seriesModel),
+ borderColorN: getBorderColor(-1, seriesModel)
});
// Only visible series has each data be visual encoded
@@ -40,17 +44,25 @@ export default {
data.setItemVisual(
dataIndex,
{
- color: itemModel.get(
- sign > 0 ? positiveColorQuery : negativeColorQuery
- ),
- borderColor: itemModel.get(
- sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery
- )
+ color: getColor(sign, itemModel),
+ borderColor: getBorderColor(sign, itemModel)
}
);
}
}
+ function getColor(sign, model) {
+ return model.get(
+ sign > 0 ? positiveColorQuery : negativeColorQuery
+ );
+ }
+
+ function getBorderColor(sign, model) {
+ return model.get(
+ sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery
+ );
+ }
+
return {progress: progress};
}
diff --git a/src/chart/helper/WhiskerBoxDraw.js b/src/chart/helper/WhiskerBoxDraw.js
deleted file mode 100644
index 1753633..0000000
--- a/src/chart/helper/WhiskerBoxDraw.js
+++ /dev/null
@@ -1,300 +0,0 @@
-/**
- * @module echarts/chart/helper/Symbol
- */
-
-import * as zrUtil from 'zrender/src/core/util';
-import * as graphic from '../../util/graphic';
-import Path from 'zrender/src/graphic/Path';
-
-
-
-
-// ------------------
-// -- Whisker Path --
-// ------------------
-
-var WhiskerPath = Path.extend({
-
- type: 'whiskerInBox',
-
- shape: {},
-
- buildPath: function (ctx, shape) {
- for (var i in shape) {
- if (shape.hasOwnProperty(i) && i.indexOf('ends') === 0) {
- var pts = shape[i];
- ctx.moveTo(pts[0][0], pts[0][1]);
- ctx.lineTo(pts[1][0], pts[1][1]);
- }
- }
- }
-});
-
-
-
-
-// ----------------
-// -- Normal Box --
-// ----------------
-
-
-var BODY_INDEX = 0;
-var WHISKER_INDEX = 1;
-
-/**
- * @param {module:echarts/data/List} data
- * @param {number} idx
- * @param {Function} styleUpdater
- * @param {boolean} isInit
- */
-function createNormalBox(data, dataIndex, styleUpdater, isInit) {
- var boxEl = new graphic.Group();
-
- var itemLayout = data.getItemLayout(dataIndex);
- var constDim = itemLayout.chartLayout === 'horizontal' ? 1 : 0;
-
- // Whisker element.
- boxEl.add(new graphic.Polygon({
- shape: {
- points: isInit
- ? transInit(itemLayout.bodyEnds, constDim, itemLayout)
- : itemLayout.bodyEnds
- },
- style: {strokeNoScale: true},
- z2: 100
- }));
-
- // Box element.
- var whiskerEnds = zrUtil.map(itemLayout.whiskerEnds, function (ends) {
- return isInit ? transInit(ends, constDim, itemLayout) : ends;
- });
- boxEl.add(new WhiskerPath({
- shape: makeWhiskerEndsShape(whiskerEnds),
- style: {strokeNoScale: true},
- z2: 100
- }));
-
- updateNormalBoxData(boxEl, data, dataIndex, styleUpdater, isInit);
-
- return boxEl;
-}
-
-function updateNormalBoxData(boxEl, data, dataIndex, styleUpdater, isInit) {
- var seriesModel = boxEl._seriesModel = data.hostModel;
- var itemLayout = data.getItemLayout(dataIndex);
- var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];
- var whiskerEl = boxEl.childAt(WHISKER_INDEX);
- var bodyEl = boxEl.childAt(BODY_INDEX);
-
- updateMethod(
- bodyEl,
- {shape: {points: itemLayout.bodyEnds}},
- seriesModel, dataIndex
- );
- updateMethod(
- whiskerEl,
- {shape: makeWhiskerEndsShape(itemLayout.whiskerEnds)},
- seriesModel, dataIndex
- );
-
- styleUpdater(data, dataIndex, boxEl, whiskerEl, bodyEl);
-}
-
-function transInit(points, dim, itemLayout) {
- return zrUtil.map(points, function (point) {
- point = point.slice();
- point[dim] = itemLayout.initBaseline;
- return point;
- });
-}
-
-function makeWhiskerEndsShape(whiskerEnds) {
- // zr animation only support 2-dim array.
- var shape = {};
- zrUtil.each(whiskerEnds, function (ends, i) {
- shape['ends' + i] = ends;
- });
- return shape;
-}
-
-
-
-
-// ---------------
-// -- Large Box --
-// ---------------
-
-var NORMAL_STYLE_ACCESS_PATH = ['itemStyle'];
-var EMPHASIS_STYLE_ACCESS_PATH = ['emphasis', 'itemStyle'];
-
-function createLargeBox(data, largePoints, dataIndex, segmentStart) {
- var boxEl = new graphic.Line({
- shape: largeBoxMakeShape(largePoints, dataIndex, segmentStart)
- });
-
- boxEl.__largeWhiskerBox = true;
-
- largeBoxSetStyle(boxEl, data, dataIndex);
-
- return boxEl;
-}
-
-function largeBoxMakeShape(largePoints, dataIndex, segmentStart) {
- var baseIdx = (dataIndex - (segmentStart || 0)) * 5;
- return {
- x1: largePoints[baseIdx + 1],
- y1: largePoints[baseIdx + 2],
- x2: largePoints[baseIdx + 3],
- y2: largePoints[baseIdx + 4]
- };
-}
-
-function updateLargeBoxData(boxEl, data, dataIndex) {
- graphic.updateProps(
- boxEl,
- {shape: largeBoxMakeShape(data.getLayout('largePoints'), dataIndex, 0)},
- data.hostModel,
- dataIndex
- );
-
- largeBoxSetStyle(boxEl, data, dataIndex);
-}
-
-function largeBoxSetStyle(boxEl, data, dataIndex) {
- var itemModel = data.getItemModel(dataIndex);
- var normalItemStyleModel = itemModel.getModel(NORMAL_STYLE_ACCESS_PATH);
- var color = data.getItemVisual(dataIndex, 'color');
- var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color;
-
- // Color must be excluded.
- // Because symbol provide setColor individually to set fill and stroke
- var itemStyle = normalItemStyleModel.getItemStyle(
- ['color', 'color0', 'borderColor', 'borderColor0']
- );
-
- boxEl.useStyle(itemStyle);
- boxEl.style.stroke = borderColor;
-
- var hoverStyle = itemModel.getModel(EMPHASIS_STYLE_ACCESS_PATH).getItemStyle();
- graphic.setHoverStyle(boxEl, hoverStyle);
-}
-
-
-
-
-// --------------------
-// -- WhiskerBoxDraw --
-// --------------------
-
-/**
- * @constructor
- * @alias module:echarts/chart/helper/WhiskerBoxDraw
- */
-function WhiskerBoxDraw(styleUpdater) {
- this.group = new graphic.Group();
- this.styleUpdater = styleUpdater;
-}
-
-var whiskerBoxDrawProto = WhiskerBoxDraw.prototype;
-
-/**
- * Update symbols draw by new data
- * @param {module:echarts/data/List} data
- */
-whiskerBoxDrawProto.updateData = function (data) {
- var group = this.group;
- var oldData = this._data;
- var styleUpdater = this.styleUpdater;
- var pipelineContext = data.hostModel.pipelineContext;
- var isLargeRender = pipelineContext.large;
- var largePoints = isLargeRender && data.getLayout('largePoints');
-
- // There is no old data only when first rendering or switching from
- // stream mode to normal mode, where previous elements should be removed.
- if (!this._data) {
- group.removeAll();
- }
-
- data.diff(oldData)
- .add(function (newIdx) {
- if (data.hasValue(newIdx)) {
- var symbolEl = isLargeRender
- ? createLargeBox(data, largePoints, newIdx)
- : createNormalBox(data, newIdx, styleUpdater, true);
- data.setItemGraphicEl(newIdx, symbolEl);
- group.add(symbolEl);
- }
- })
- .update(function (newIdx, oldIdx) {
- var symbolEl = oldData.getItemGraphicEl(oldIdx);
-
- // Empty data
- if (!data.hasValue(newIdx)) {
- group.remove(symbolEl);
- return;
- }
-
- if (symbolEl && symbolEl.__largeWhiskerBox ^ isLargeRender) {
- group.remove(symbolEl);
- symbolEl = null;
- }
-
- if (!symbolEl) {
- symbolEl = isLargeRender
- ? createLargeBox(data, largePoints, newIdx)
- : createNormalBox(data, newIdx, styleUpdater);
- }
- else {
- isLargeRender
- ? updateLargeBoxData(symbolEl, data, newIdx)
- : updateNormalBoxData(symbolEl, data, newIdx, styleUpdater);
- }
-
- // Add back
- group.add(symbolEl);
-
- data.setItemGraphicEl(newIdx, symbolEl);
- })
- .remove(function (oldIdx) {
- var el = oldData.getItemGraphicEl(oldIdx);
- el && group.remove(el);
- })
- .execute();
-
- this._data = data;
-};
-
-whiskerBoxDrawProto.incrementalPrepareUpdate = function (seriesModel, ecModel, api) {
- this.group.removeAll();
- this._data = null;
-};
-
-whiskerBoxDrawProto.incrementalUpdate = function (params, seriesModel, ecModel, api) {
- var data = seriesModel.getData();
- var pipelineContext = seriesModel.pipelineContext;
- var isLargeRender = pipelineContext.large;
- var largePoints = isLargeRender && data.getLayout('largePoints');
-
- for (var idx = params.start; idx < params.end; idx++) {
- var symbolEl = isLargeRender
- ? createLargeBox(data, largePoints, idx, params.start)
- : createNormalBox(data, idx, this.styleUpdater, true);
- symbolEl.incremental = true;
- this.group.add(symbolEl);
- }
-};
-
-/**
- * Remove symbols.
- * @param {module:echarts/data/List} data
- */
-whiskerBoxDrawProto.remove = function () {
- var group = this.group;
- var data = this._data;
- this._data = null;
- data && data.eachItemGraphicEl(function (el) {
- el && group.remove(el);
- });
-};
-
-export default WhiskerBoxDraw;
diff --git a/src/chart/helper/whiskerBoxCommon.js b/src/chart/helper/whiskerBoxCommon.js
index b9fd4e2..714cd44 100644
--- a/src/chart/helper/whiskerBoxCommon.js
+++ b/src/chart/helper/whiskerBoxCommon.js
@@ -1,6 +1,5 @@
import createListSimply from '../helper/createListSimply';
-import WhiskerBoxDraw from '../helper/WhiskerBoxDraw';
import * as zrUtil from 'zrender/src/core/util';
import {getDimensionTypeByAxis} from '../../data/helper/dimensionHelper';
@@ -110,34 +109,3 @@ export var seriesModelMixin = {
}
};
-
-export var viewMixin = {
-
- init: function () {
- /**
- * Old data.
- * @private
- * @type {module:echarts/chart/helper/WhiskerBoxDraw}
- */
- var whiskerBoxDraw = this._whiskerBoxDraw = new WhiskerBoxDraw(
- this.getStyleUpdater()
- );
- this.group.add(whiskerBoxDraw.group);
- },
-
- render: function (seriesModel, ecModel, api) {
- this._whiskerBoxDraw.updateData(seriesModel.getData());
- },
-
- incrementalPrepareRender: function (seriesModel, ecModel, api) {
- this._whiskerBoxDraw.incrementalPrepareUpdate(seriesModel, ecModel, api);
- },
-
- incrementalRender: function (params, seriesModel, ecModel, api) {
- this._whiskerBoxDraw.incrementalUpdate(params, seriesModel, ecModel, api);
- },
-
- remove: function (ecModel) {
- this._whiskerBoxDraw.remove();
- }
-};
diff --git a/test/candlestick.html b/test/candlestick.html
index 14d3bbc..3150b86 100644
--- a/test/candlestick.html
+++ b/test/candlestick.html
@@ -150,6 +150,11 @@
name: '上证指数',
type: 'candlestick',
data: data.values,
+ // itemStyle: {
+ // borderColor: '#345',
+ // borderColor0: '#998',
+ // borderWidth: 2
+ // },
tooltip: {
formatter: function (param) {
var param = param[0];
--
To stop receiving notification emails like this one, please contact
sushuang@apache.org.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org