跳到主要内容

DvScatterHelper

静态气泡图中的辅助函数集合

计算轴线极值

该函数可以实现以下需求点:

1:给出可以包含所有时间范围内气泡的轴线极值,使轴线不会动态变化,从而可以清晰的看到气泡的移动轨迹

2:该极值必定会将所有气泡包含在坐标系内

3:轴线极值会以参数给定的颗粒度进行取整

// 调用示例
let { xRange, yRange } = standardChart.helper.dvScatter.containBubble(
[[1,1,1],[2,2,2]],
'container',
'mobile'
);

// 入参说明:
interface arguments {
flatValue: unknown[][], // 拍平后,只包含value的数组,多周期需要拍平为一个数组
dom: HTMLDivElement | string, // 图表渲染的dom或domId
symbolSize: [number, number]|'mobile'|'pc', // 气泡图的size范围,如果默认使用主题,则只需要传入端类型
config?: {
gridOption?: GridComponentOption; // 如果改变了Grid相关的配置项,需要在此传入
xNiceRangeConfig?: { // X轴极值取整粒度配置项,二者取一
absoluteInterval?: number;
relativeInterval?: number;
};
yNiceRangeConfig?: { // Y轴极值取整粒度配置项,二者取一
absoluteInterval?: number;
relativeInterval?: number;
};
}
}
提示

absoluteIntervalrelativeInterval 只需传入一个即可

absoluteInterval 为绝对取整粒度,无论数据范围有多大,最终一定是绝对取整粒度的整数倍,假设数据极值为[-11111111,11111111],如果绝对取整粒度为5,则取整后的结果为[-11111115,11111115]

relativeInterval 为相对取整粒度,依赖数据范围,假设取整前的数据极值为[12,189],数据范围跨度为 189-12 = 177, 则指数粒度为Math.floor(Math.log10(177))-1,即 10,更为通俗的理解是,当数据跨度过【百】时,以【十】作为指数粒度,默认系数为 1,如果用户传入了相对取整粒度,则会成为指数粒度的系数。比如在上述场景下传入 3,则最终取整粒度即为 3\*10=30,即取整结果为[0,210]