数据分段渲染 dataZoom
dataZoom: [{
type: 'slider',
start: 0,
end: 20
minSpan: 0,
maxSpan: 10,
}],
series: {
progressive: 2000,
progressiveThreshold: 5000
},
dataZoom处理海量数据的优缺点
优点:配置简单;
缺点:只能看指定局部的数据;无法看整体数据
降采样策略 sampling
series: [
{
name: 'Email',
type: 'line',
stack: 'Total',
sampling: "lttb",
data: emailData
},
]
- sampling 的可选值有以下几个:
lttb: 采用 Largest-Triangle-Three-Bucket 算法,可以最大程度保证采样后线条的趋势,形状和极值。
average: 取过滤点的平均值
min: 取过滤点的最小值
max: 取过滤点的最大值
minmax: 取过滤点绝对值的最大极值 (从 v5.5.0 开始支持)
sum: 取过滤点的和
sampling降采样策略的优缺点
优点:可以看见整体的趋势;
缺点:部分数据丢失;tooltip功能可能实现不了
测试数据
export default () => {
const list = Array.from({ length: 10000 });
const xAxisData = [];
const emailData = [];
const unionAdsData = [];
const videoAdsData = [];
list.forEach((_, index) => {
xAxisData.push(`mon-${index}`);
emailData.push(100 + parseInt(Math.random() * 30 * index));
unionAdsData.push(150 + parseInt(Math.random() * 20 * index));
videoAdsData.push(200 + parseInt(Math.random() * 10 * index));
});
return {
xAxisData,
emailData,
unionAdsData,
videoAdsData,
}
};