提交 819ebb51 编写于 作者: L lang

Axis min, max, splitNumber

上级 be02d26f
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
*/ */
define(function(require, factory) { define(function(require, factory) {
'use strict';
var zrUtil = require('zrender/core/util'); var zrUtil = require('zrender/core/util');
var Cartesian2D = require('./Cartesian2D'); var Cartesian2D = require('./Cartesian2D');
var Axis2D = require('./Axis2D'); var Axis2D = require('./Axis2D');
...@@ -187,6 +185,33 @@ define(function(require, factory) { ...@@ -187,6 +185,33 @@ define(function(require, factory) {
y: 0 y: 0
}; };
ecModel.eachComponent('xAxis', createAxisCreator('x'), this);
ecModel.eachComponent('yAxis', createAxisCreator('y'), this);
if (! axesCount.x || ! axesCount.y) {
api.log('Grid must has at least one x axis and one y axis');
// Roll back
this._axesMap = {};
this._axesList = [];
return;
}
zrUtil.each(axesMap.x, function (xAxis, xAxisIndex) {
zrUtil.each(axesMap.y, function (yAxis, yAxisIndex) {
var key = 'x' + xAxisIndex + 'y' + yAxisIndex;
var cartesian = new Cartesian2D(key);
this._coordsMap[key] = cartesian;
this._coordsList.push(cartesian);
cartesian.addAxis(xAxis);
cartesian.addAxis(yAxis);
}, this);
}, this);
this._updateCartesianFromSeries(ecModel, gridModel);
function createAxisCreator(axisType) { function createAxisCreator(axisType) {
return function (axisModel, idx) { return function (axisModel, idx) {
if (!isAxisUsedInTheGrid(axisModel, gridModel, ecModel)) { if (!isAxisUsedInTheGrid(axisModel, gridModel, ecModel)) {
...@@ -217,32 +242,6 @@ define(function(require, factory) { ...@@ -217,32 +242,6 @@ define(function(require, factory) {
axesCount[axisType]++; axesCount[axisType]++;
} }
} }
ecModel.eachComponent('xAxis', createAxisCreator('x'), this);
ecModel.eachComponent('yAxis', createAxisCreator('y'), this);
if (! axesCount.x || ! axesCount.y) {
api.log('Grid must has at least one x axis and one y axis');
// Roll back
this._axesMap = {};
this._axesList = [];
return;
}
zrUtil.each(axesMap.x, function (xAxis, xAxisIndex) {
zrUtil.each(axesMap.y, function (yAxis, yAxisIndex) {
var key = 'x' + xAxisIndex + 'y' + yAxisIndex;
var cartesian = new Cartesian2D(key);
this._coordsMap[key] = cartesian;
this._coordsList.push(cartesian);
cartesian.addAxis(xAxis);
cartesian.addAxis(yAxis);
}, this);
}, this);
this._updateCartesianFromSeries(ecModel, gridModel);
}, },
/** /**
...@@ -306,23 +305,32 @@ define(function(require, factory) { ...@@ -306,23 +305,32 @@ define(function(require, factory) {
var xAxis = cartesian.getAxis('x'); var xAxis = cartesian.getAxis('x');
var yAxis = cartesian.getAxis('y'); var yAxis = cartesian.getAxis('y');
if (axisData.x.length) { if (axisData.x.length) {
if (axisData.xModel.get('scale')) { var xModel = axisData.xModel;
if (xModel.get('scale')) {
axisData.x.push(0); axisData.x.push(0);
} }
xAxis.scale.setExtentFromData(axisData.x); xAxis.scale.setExtentFromData(axisData.x);
niceScaleExent(xAxis, xModel);
} }
if (axisData.y.length) { if (axisData.y.length) {
if (axisData.yModel.get('scale')) { var yModel = axisData.yModel;
if (yModel.get('scale')) {
axisData.y.push(0); axisData.y.push(0);
} }
yAxis.scale.setExtentFromData(axisData.y); yAxis.scale.setExtentFromData(axisData.y);
niceScaleExent(yAxis, yModel);
} }
}); });
// Set axis from option function niceScaleExent(axis, model) {
zrUtil.each(this._axesList, function (axis) { var min = model.get('min');
axis.scale.niceExtent(); var max = model.get('max');
}); axis.scale.setExtent(min, max);
axis.scale.niceExtent(model.get('splitNumber'), !!min, !!max);
}
} }
}; };
......
...@@ -71,11 +71,8 @@ define(function (require) { ...@@ -71,11 +71,8 @@ define(function (require) {
var max = union ? extent[1] : -Infinity; var max = union ? extent[1] : -Infinity;
var min = union ? extent[0] : Infinity; var min = union ? extent[0] : Infinity;
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
if (data[i] == null || data[i] === '-') { data[i] > max && (max = data[i]);
continue; data[i] < min && (min = data[i]);
}
max = Math.max(data[i], max);
min = Math.min(data[i], min);
} }
this.setExtent(min, max); this.setExtent(min, max);
...@@ -96,8 +93,12 @@ define(function (require) { ...@@ -96,8 +93,12 @@ define(function (require) {
*/ */
setExtent: function (start, end) { setExtent: function (start, end) {
var thisExtent = this._extent; var thisExtent = this._extent;
thisExtent[0] = isNaN(start) ? 0 : start; if (! isNaN(start)) {
thisExtent[1] = isNaN(end) ? 0 : end; thisExtent[0] = start;
}
if (! isNaN(end)) {
thisExtent[1] = end;
}
}, },
/** /**
...@@ -197,16 +198,22 @@ define(function (require) { ...@@ -197,16 +198,22 @@ define(function (require) {
/** /**
* Nice extent. * Nice extent.
* @param {number} [approxTickNum = 10] Given approx tick number * @param {number} [approxTickNum = 10] Given approx tick number
* @param {boolean} [fixMin=false]
* @param {boolean} [fixMax=false]
*/ */
niceExtent: function (approxTickNum) { niceExtent: function (approxTickNum, fixMin, fixMax) {
this.niceTicks(approxTickNum); this.niceTicks(approxTickNum);
var extent = this._extent; var extent = this._extent;
var interval = this._interval; var interval = this._interval;
extent[0] = mathFloor(extent[0] / interval) * interval; if (! fixMin) {
extent[1] = mathCeil(extent[1] / interval) * interval; extent[0] = mathFloor(extent[0] / interval) * interval;
}
if (! fixMax) {
extent[1] = mathCeil(extent[1] / interval) * interval;
}
} }
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册