Echarts高级进阶教程(1):异步加载大量数据导致dataZoom组件拖动缩放时间轴卡顿的sampling降采样策略解决方案

简介: Echarts高级进阶教程(1):异步加载大量数据导致dataZoom组件拖动缩放时间轴卡顿的sampling降采样策略解决方案

测试目的

Echarts折线图,大量数据异步加载导致dataZoom组件拖动缩放时间轴卡顿

测试环境

  1. 本地json,28006条数据;
  1. ajax异步加载;
    $(function () {
        var dataUrl = "data/data.json"
        $.ajax({
            type: "get",
            url: dataUrl,
            async: true,
            data: {},
            dataType: "json",
            success: function (res) {
                var exData = res.data;
                console.log(exData);
                var lineData = [], LineName = [];
                if (exData.length > 0) {
                    for (var i = 0; i < exData.length; i++) {
                        lineData.push(exData[i].value);
                        LineName.push(exData[i].time.slice(11, 16));
                    }
                }
                //调用封装函数;
                getLine(LineName, lineData);
            },
            error: function (err) {
                console.log(err + "请求数据失败!");
            }
        });
    })


解决方案

series-line. samplingstring

折线图在数据量远大于像素点时候的降采样策略,开启后可以有效的优化图表的绘制效率,默认关闭,也就是全部绘制不过滤数据点。

可选:

‘average’ 取过滤点的平均值

‘max’ 取过滤点的最大值

‘min’ 取过滤点的最小值

‘sum’ 取过滤点的和


效果比较

未采用sampling降采样策略

sampling: ‘average’


采用sampling降采样策略

结论说明

  1. 加载数据大小相同,加载时间基本相同;
  2. 使用sampling降采样策略,dataZoom组件拖动缩放时间轴卡顿明显解决。

其他配合条件

根据实际情况,可以将echarts不必要的动画和标志图形关闭,已达到显示数据为主,效果为辅的目的。


series-line. showAllSymbol = ‘auto’

只在主轴为类目轴(axis.type 为 ‘category’)时有效。 可选值:

‘auto’:默认,如果有足够空间则显示标志图形,否则随主轴标签间隔隐藏策略。

true:显示所有图形。

false:随主轴标签间隔隐藏策略。


series-line. animation = true

是否开启动画。


series-line. showSymbol = true 是否显示 symbol, 如果 false 则只有在 tooltip

hover 的时候显示。


方案代码

  series: [{
                data: lineData,
                //showSymbol: false,
                sampling: 'average',//降采样策略
                //showAllSymbol: false,
                type: 'line'
            }]


源码下载

Done!

相关文章
|
1月前
|
前端开发 算法 数据可视化
怎么在echarts图上左右滑动切换数据区间
怎么在echarts图上左右滑动切换数据区间
95 0
|
8天前
|
数据可视化 数据挖掘
ECharts综合案例一:近七天跑步数据
使用ECharts进行一周跑步数据分析,通过雷达图展示多维度指标(如距离、速度、时间),颜色对比体现个人与平均表现。折线图则清晰显示每日里程趋势,代码示例展示了自定义的`radar`和`line`图表配置。图表交互性强,支持点击高亮,动画流畅,提供完整代码资源。#ECharts #跑步数据 #数据可视化
53 3
ECharts综合案例一:近七天跑步数据
|
9天前
|
数据可视化 数据挖掘
ECharts综合案例一:近七天跑步数据
使用ECharts展示近七天跑步数据,结合雷达图和折线图揭示运动表现。雷达图多维度呈现全程距离、速度和时间,对比平均指标;折线图清晰展示里程趋势。图表具有交互性和动画效果,通过[代码地址](https://download.csdn.net/download/No_Name_Cao_Ni_Mei/89454698)可获取详情。#ECharts #跑步数据 #数据可视化 #雷达图 #折线图
27 3
ECharts综合案例一:近七天跑步数据
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
|
3天前
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
|
1月前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
|
1月前
|
数据可视化 前端开发 定位技术
ECharts前端教程
ECharts前端教程
68 3
|
1月前
|
编解码 数据可视化 前端开发
ECharts 对比 Highcharts 使用教程
ECharts 对比 Highcharts 使用教程
58 1
Echarts各类图表常用配置项说明,附示例代码
Echarts各类图表常用配置项说明,附示例代码
|
4天前
|
JavaScript Apache CDN
Vue项目使用ECharts实现图表
Vue项目使用ECharts实现图表
13 0