123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import { isDimensionStacked } from '../../data/helper/dataStackHelper.js';
- import { isNumber, map } from 'zrender/lib/core/util.js';
- export function prepareDataCoordInfo(coordSys, data, valueOrigin) {
- var baseAxis = coordSys.getBaseAxis();
- var valueAxis = coordSys.getOtherAxis(baseAxis);
- var valueStart = getValueStart(valueAxis, valueOrigin);
- var baseAxisDim = baseAxis.dim;
- var valueAxisDim = valueAxis.dim;
- var valueDim = data.mapDimension(valueAxisDim);
- var baseDim = data.mapDimension(baseAxisDim);
- var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;
- var dims = map(coordSys.dimensions, function (coordDim) {
- return data.mapDimension(coordDim);
- });
- var stacked = false;
- var stackResultDim = data.getCalculationInfo('stackResultDimension');
- if (isDimensionStacked(data, dims[0] )) {
-
- stacked = true;
- dims[0] = stackResultDim;
- }
- if (isDimensionStacked(data, dims[1] )) {
-
- stacked = true;
- dims[1] = stackResultDim;
- }
- return {
- dataDimsForPoint: dims,
- valueStart: valueStart,
- valueAxisDim: valueAxisDim,
- baseAxisDim: baseAxisDim,
- stacked: !!stacked,
- valueDim: valueDim,
- baseDim: baseDim,
- baseDataOffset: baseDataOffset,
- stackedOverDimension: data.getCalculationInfo('stackedOverDimension')
- };
- }
- function getValueStart(valueAxis, valueOrigin) {
- var valueStart = 0;
- var extent = valueAxis.scale.getExtent();
- if (valueOrigin === 'start') {
- valueStart = extent[0];
- } else if (valueOrigin === 'end') {
- valueStart = extent[1];
- }
-
-
- else if (isNumber(valueOrigin) && !isNaN(valueOrigin)) {
- valueStart = valueOrigin;
- }
-
- else {
-
- if (extent[0] > 0) {
- valueStart = extent[0];
- }
-
- else if (extent[1] < 0) {
- valueStart = extent[1];
- }
-
- }
- return valueStart;
- }
- export function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {
- var value = NaN;
- if (dataCoordInfo.stacked) {
- value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);
- }
- if (isNaN(value)) {
- value = dataCoordInfo.valueStart;
- }
- var baseDataOffset = dataCoordInfo.baseDataOffset;
- var stackedData = [];
- stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);
- stackedData[1 - baseDataOffset] = value;
- return coordSys.dataToPoint(stackedData);
- }
|