提交 45a610ce 编写于 作者: L lang

Series add methods dataDimToCoordDim, coordDimToDataDim

上级 e26558a3
......@@ -72,7 +72,7 @@ define(function(require) {
* @param {string} axisDim 'x' or 'y'
* @return {Array.<string>} dimensions on the axis.
*/
getDimensionsOnAxis: function (axisDim) {
coordDimToDataDim: function (axisDim) {
var dims = this.valueDimensions.slice();
var baseDim = ['base'];
var map = {
......@@ -84,25 +84,20 @@ define(function(require) {
/**
* @override
* @param {string|number} [dataDim]
* @return {Array.<Object>} dimension info list.
* @param {string|number} dataDim
* @return {string} coord dimension
*/
getCoordDimensionInfo: function (dataDim) {
var data = this.getData();
var infoList = [];
var info;
dataDimToCoordDim: function (dataDim) {
var dim;
zrUtil.each(['x', 'y'], function (coordDim, index) {
var dataDims = this.getDimensionsOnAxis(coordDim);
if (dataDim != null && zrUtil.indexOf(dataDims, dataDim) >= 0) {
info = data.getDimensionInfo(dataDim);
info.name = coordDim;
var dataDims = this.coordDimToDataDim(coordDim);
if (zrUtil.indexOf(dataDims, dataDim) >= 0) {
dim = coordDim;
}
infoList[index] = data.getDimensionInfo(dataDims[0]);
infoList[index].name = coordDim;
}, this);
return dataDim != null ? info : infoList;
return dim;
},
/**
......
......@@ -171,7 +171,7 @@ define(function (require) {
* @param {string} axisDim
* @return {Array.<string> } specified dimensions on the axis.
*/
getDimensionsOnAxis: function (axisDim) {
coordDimToDataDim: function (axisDim) {
var dims = {
oneDim: ['time']
};
......
......@@ -221,7 +221,7 @@ define(function(require) {
return;
}
each(seriesModel.getDimensionsOnAxis(axisDim), function (dim) {
each(seriesModel.coordDimToDataDim(axisDim), function (dim) {
if (filterMode === 'empty') {
seriesModel.setData(
seriesData.map(dim, function (value) {
......@@ -247,7 +247,7 @@ define(function(require) {
each(seriesModels, function (seriesModel) {
var seriesData = seriesModel.getData();
if (seriesData) {
each(seriesModel.getDimensionsOnAxis(axisDim), function (dim) {
each(seriesModel.coordDimToDataDim(axisDim), function (dim) {
var seriesExtent = seriesData.getDataExtent(dim);
seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);
seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);
......
......@@ -238,8 +238,16 @@ define(function (require) {
* @param {module:echarts/model/Model} mpModel
*/
function createList(coordSys, seriesModel, mlModel) {
var fromData = new List(seriesModel.getCoordDimensionInfo(), mlModel);
var toData = new List(seriesModel.getCoordDimensionInfo(), mlModel);
var coordDimsInfos = zrUtil.map(coordSys.dimensions, function (coordDim) {
var info = seriesModel.getData().getDimensionInfo(
seriesModel.coordDimToDataDim(coordDim)[0]
);
info.name = coordDim;
return info;
});
var fromData = new List(coordDimsInfos, mlModel);
var toData = new List(coordDimsInfos, mlModel);
// No dimensions
var lineData = new List([], mlModel);
......
......@@ -149,10 +149,15 @@ define(function (require) {
* @param {module:echarts/model/Model} mpModel
*/
function createList(coordSys, seriesModel, mpModel) {
var seriesData = seriesModel.getData();
var dataDimensions = seriesData.dimensions;
var coordDimsInfos = zrUtil.map(coordSys.dimensions, function (coordDim) {
var info = seriesModel.getData().getDimensionInfo(
seriesModel.coordDimToDataDim(coordDim)[0]
);
info.name = coordDim;
return info;
});
var mpData = new List(seriesModel.getCoordDimensionInfo(), mpModel);
var mpData = new List(coordDimsInfos, mpModel);
if (coordSys) {
mpData.initData(
......
......@@ -121,15 +121,15 @@ define(function (require) {
if (item.valueIndex != null || item.valueDim != null) {
ret.valueDataDim = item.valueIndex != null
? data.getDimension(item.valueIndex) : item.valueDim;
ret.valueAxis = coordSys.getAxis(seriesModel.getCoordDimensionInfo(ret.valueDataDim).name);
ret.valueAxis = coordSys.getAxis(seriesModel.dataDimToCoordDim(ret.valueDataDim));
ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);
ret.baseDataDim = seriesModel.getDimensionsOnAxis(ret.baseAxis.dim)[0];
ret.baseDataDim = seriesModel.coordDimToDataDim(ret.baseAxis.dim)[0];
}
else {
ret.baseAxis = seriesModel.getBaseAxis();
ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);
ret.baseDataDim = seriesModel.getDimensionsOnAxis(ret.baseAxis.dim)[0];
ret.valueDataDim = seriesModel.getDimensionsOnAxis(ret.valueAxis.dim)[0];
ret.baseDataDim = seriesModel.coordDimToDataDim(ret.baseAxis.dim)[0];
ret.valueDataDim = seriesModel.coordDimToDataDim(ret.valueAxis.dim)[0];
}
return ret;
......
......@@ -853,9 +853,9 @@ define(function (require) {
return {
seriesIndex: series.seriesIndex,
dataIndex: series.getAxisTooltipDataIndex
? series.getAxisTooltipDataIndex(series.getDimensionsOnAxis(baseAxis.dim), value, baseAxis)
? series.getAxisTooltipDataIndex(series.coordDimToDataDim(baseAxis.dim), value, baseAxis)
: series.getData().indexOfNearest(
series.getDimensionsOnAxis(baseAxis.dim)[0],
series.coordDimToDataDim(baseAxis.dim)[0],
value[baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1]
)
};
......
......@@ -349,7 +349,7 @@ define(function(require, factory) {
}, this);
function unionExtent(data, axis, seriesModel) {
each(seriesModel.getDimensionsOnAxis(axis.dim), function (dim) {
each(seriesModel.coordDimToDataDim(axis.dim), function (dim) {
axis.scale.unionExtent(data.getDataExtent(
dim, axis.scale.type !== 'ordinal'
));
......
......@@ -108,7 +108,7 @@ define(function (require) {
var data = seriesModel.getData();
var dim = this.dimension;
this._axis.scale.unionExtent(
data.getDataExtent(seriesModel.getDimensionsOnAxis(dim))
data.getDataExtent(seriesModel.coordDimToDataDim(dim))
);
axisHelper.niceScaleExtent(this._axis, this._axis.model);
}, this);
......
......@@ -128,33 +128,29 @@ define(function(require) {
},
/**
* Get dimensions on the given axis.
* @param {string} axisDim
* Coord dimension to data dimension.
*
* By default the result is the same as dimensions of series data.
* But some series dimensions are different from coord dimensions (i.e.
* candlestick and boxplot). Override this method to handle those cases.
*
* Coord dimension to data dimension can be one-to-many
*
* @param {string} coordDim
* @return {Array.<string>} dimensions on the axis.
*/
getDimensionsOnAxis: function (axisDim) {
return [axisDim]; // Retunr axisDim default.
coordDimToDataDim: function (coordDim) {
return [coordDim];
},
/**
* Get coordinate dimensions info.
* By default the result is the same as dimensions info of series data.
* But some series dimensions are different from coord dimensions (i.e.
* candlestick and boxplot). Override this method to handle those cases.
* @param {string|number} [dataDim]
* @return {Array.<Object>} If dataDim specified, return cooresponding
* coord dim info, otherwise return dimension
* info list. If no coordinate system, reutrn [].
* Convert data dimension to coord dimension.
*
* @param {string|number} dataDim
* @return {string}
*/
getCoordDimensionInfo: function (dataDim) {
var data = this.getData();
return this.coordinateSystem
? (
dataDim != null
? data.getDimensionInfo(dataDim)
: zrUtil.map(data.dimensions, data.getDimensionInfo, data)
)
: [];
dataDimToCoordDim: function (dataDim) {
return dataDim;
},
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册