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!

相关文章
|
5月前
|
JSON JavaScript 定位技术
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
557 1
|
6月前
|
JavaScript 定位技术
echarts地图数据信息流向图效果
本文介绍了如何使用 ECharts 创建一个地图数据信息流向图效果,包括设置地理坐标、线条动画和流向图的实现方法,并通过 Vue.js 封装了一个可重用的 ECharts 地图组件。
284 23
echarts地图数据信息流向图效果
|
5月前
|
JavaScript API
Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式
通过上述方法,我们便能够在ECharts中根据数据的正负为每个图例项设置不同的样式,增强了图表的可读性和表现力。这种方法虽然略显间接,但不失为一种灵活的解决方案。
549 2
|
5月前
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
1198 0
|
5月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
184 1
|
7月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
632 1
微信小程序使用echarts图表(ec-canvas)
|
6月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
5月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
979 0
|
7月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
7月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
148 1