echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
102 lines (101 loc) • 3.45 kB
TypeScript
import { createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder.js';
import Scale from '../scale/Scale.js';
import { DimensionName, ScaleDataValue, ScaleTick } from '../util/types.js';
import Model from '../model/Model.js';
import { AxisBaseOption, CategoryAxisBaseOption, OptionAxisType } from './axisCommonTypes.js';
import { AxisBaseModel } from './AxisBaseModel.js';
interface TickCoord {
coord: number;
tickValue?: ScaleTick['value'];
}
/**
* Base class of Axis.
*/
declare class Axis {
/**
* Axis type
* - 'category'
* - 'value'
* - 'time'
* - 'log'
*/
type: OptionAxisType;
readonly dim: DimensionName;
scale: Scale;
private _extent;
model: AxisBaseModel;
onBand: CategoryAxisBaseOption['boundaryGap'];
inverse: AxisBaseOption['inverse'];
constructor(dim: DimensionName, scale: Scale, extent: [number, number]);
/**
* If axis extent contain given coord
*/
contain(coord: number): boolean;
/**
* If axis extent contain given data
*/
containData(data: ScaleDataValue): boolean;
/**
* Get coord extent.
*/
getExtent(): [number, number];
/**
* Get precision used for formatting
*/
getPixelPrecision(dataExtent?: [number, number]): number;
/**
* Set coord extent
*/
setExtent(start: number, end: number): void;
/**
* Convert data to coord. Data is the rank if it has an ordinal scale
*/
dataToCoord(data: ScaleDataValue, clamp?: boolean): number;
/**
* Convert coord to data. Data is the rank if it has an ordinal scale
*/
coordToData(coord: number, clamp?: boolean): number;
/**
* Convert pixel point to data in axis
*/
pointToData(point: number[], clamp?: boolean): number;
/**
* Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`,
* `axis.getTicksCoords` considers `onBand`, which is used by
* `boundaryGap:true` of category axis and splitLine and splitArea.
* @param opt.tickModel default: axis.model.getModel('axisTick')
* @param opt.clamp If `true`, the first and the last
* tick must be at the axis end points. Otherwise, clip ticks
* that outside the axis extent.
*/
getTicksCoords(opt?: {
tickModel?: Model;
clamp?: boolean;
}): TickCoord[];
getMinorTicksCoords(): TickCoord[][];
getViewLabels(): ReturnType<typeof createAxisLabels>['labels'];
getLabelModel(): Model<AxisBaseOption['axisLabel']>;
/**
* Notice here we only get the default tick model. For splitLine
* or splitArea, we should pass the splitLineModel or splitAreaModel
* manually when calling `getTicksCoords`.
* In GL, this method may be overridden to:
* `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));`
*/
getTickModel(): Model;
/**
* Get width of band
*/
getBandWidth(): number;
/**
* Get axis rotate, by degree.
*/
getRotate: () => number;
/**
* Only be called in category axis.
* Can be overridden, consider other axes like in 3D.
* @return Auto interval for cateogry axis tick and label
*/
calculateCategoryInterval(): ReturnType<typeof calculateCategoryInterval>;
}
export default Axis;