Skip to content

Commit

Permalink
[log] Fix #4743 Fix #3161 (better extent when log less or equals than…
Browse files Browse the repository at this point in the history
… 0.)
  • Loading branch information
100pah committed Dec 25, 2016
1 parent 3fa2c2a commit 9697715
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 16 deletions.
4 changes: 1 addition & 3 deletions src/coord/cartesian/Grid.js
Original file line number Diff line number Diff line change
Expand Up @@ -447,9 +447,7 @@ define(function(require, factory) {

function unionExtent(data, axis, seriesModel) {
each(seriesModel.coordDimToDataDim(axis.dim), function (dim) {
axis.scale.unionExtent(data.getDataExtent(
dim, axis.scale.type !== 'ordinal'
));
axis.scale.unionExtentFromData(data, dim);
});
}
};
Expand Down
2 changes: 1 addition & 1 deletion src/coord/parallel/Parallel.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ define(function(require) {

each(this.dimensions, function (dim) {
var axis = this._axesMap[dim];
axis.scale.unionExtent(data.getDataExtent(dim));
axis.scale.unionExtentFromData(data, dim);
axisHelper.niceScaleExtent(axis, axis.model);
}, this);
}, this);
Expand Down
8 changes: 2 additions & 6 deletions src/coord/polar/polarCreator.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,8 @@ define(function (require) {
ecModel.eachSeries(function (seriesModel) {
if (seriesModel.coordinateSystem === polar) {
var data = seriesModel.getData();
radiusAxis.scale.unionExtent(
data.getDataExtent('radius', radiusAxis.type !== 'category')
);
angleAxis.scale.unionExtent(
data.getDataExtent('angle', angleAxis.type !== 'category')
);
radiusAxis.scale.unionExtentFromData(data, 'radius');
angleAxis.scale.unionExtentFromData(data, 'angle');
}
});

Expand Down
2 changes: 1 addition & 1 deletion src/coord/radar/Radar.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ define(function (require) {
}
var data = radarSeries.getData();
zrUtil.each(indicatorAxes, function (indicatorAxis) {
indicatorAxis.scale.unionExtent(data.getDataExtent(indicatorAxis.dim));
indicatorAxis.scale.unionExtentFromData(data, indicatorAxis.dim);
});
}, this);

Expand Down
4 changes: 2 additions & 2 deletions src/coord/single/Single.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ define(function (require) {
if (seriesModel.coordinateSystem === this) {
var data = seriesModel.getData();
var dim = this.dimension;
this._axis.scale.unionExtent(
data.getDataExtent(seriesModel.coordDimToDataDim(dim))
this._axis.scale.unionExtentFromData(
data, seriesModel.coordDimToDataDim(dim)
);
axisHelper.niceScaleExtent(this._axis, this._axis.model);
}
Expand Down
9 changes: 6 additions & 3 deletions src/data/List.js
Original file line number Diff line number Diff line change
Expand Up @@ -410,8 +410,9 @@ define(function (require) {
* Get extent of data in one dimension
* @param {string} dim
* @param {boolean} stack
* @param {Function} filter
*/
listProto.getDataExtent = function (dim, stack) {
listProto.getDataExtent = function (dim, stack, filter) {
dim = this.getDimension(dim);
var dimData = this._storage[dim];
var dimInfo = this.getDimensionInfo(dim);
Expand All @@ -432,8 +433,10 @@ define(function (require) {
// if (isOrdinal && typeof value === 'string') {
// value = zrUtil.indexOf(dimData, value);
// }
value < min && (min = value);
value > max && (max = value);
if (!filter || filter(value, dim, i)) {
value < min && (min = value);
value > max && (max = value);
}
}
return (this._extent[dim + !!stack] = [min, max]);
}
Expand Down
9 changes: 9 additions & 0 deletions src/scale/Log.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,15 @@ define(function (require) {
scaleProto.unionExtent.call(this, extent);
},

/**
* @override
*/
unionExtentFromData: function (data, dim) {
this.unionExtent(data.getDataExtent(dim, true, function (val) {
return val > 0;
}));
},

/**
* Update interval and extent of intervals for nice ticks
* @param {number} [approxTickNum = 10] Given approx tick number
Expand Down
7 changes: 7 additions & 0 deletions src/scale/Ordinal.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,13 @@ define(function (require) {
return this._extent[1] - this._extent[0] + 1;
},

/**
* @override
*/
unionExtentFromData: function (data, dim) {
this.unionExtent(data.getDataExtent(dim, false));
},

niceTicks: zrUtil.noop,
niceExtent: zrUtil.noop
});
Expand Down
9 changes: 9 additions & 0 deletions src/scale/Scale.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,15 @@ define(function (require) {
// this.setExtent(extent[0], extent[1]);
};

/**
* Set extent from data
* @param {module:echarts/data/List} data
* @param {string} dim
*/
scaleProto.unionExtentFromData = function (data, dim) {
this.unionExtent(data.getDataExtent(dim, true));
};

/**
* Get extent
* @return {Array.<number>}
Expand Down

0 comments on commit 9697715

Please sign in to comment.