echarts-sampling降采样

今天修改一个echarts的渲染效率问题。

首先修改请求数据的问题,原先的逻辑是点击的时候请求数据,我看了下数据大概有七千多条,请求耗时是1.6s-1.7s,这是在我的电脑上。同事反馈在他的电脑上需要5s以上。

于是修改逻辑为:在“分时”的时候就请求“日”和“周”的数据。

这样一来优化了请求的时间,渲染图就不会出现长时间留白。

其次修改:echarts图渲染的时候会有卡顿的情况,查了下echarts官方配置项,有一个sampling可用,是降采样,也就是渲染的时候不把每一个点渲染出来。

echarts官方:

series-line. sampling 

string

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

可选:

  • 'lttb' 采用 Largest-Triangle-Three-Bucket 算法,可以最大程度保证采样后线条的趋势,形状和极值。
  • 'average' 取过滤点的平均值
  • 'max' 取过滤点的最大值
  • 'min' 取过滤点的最小值
  • 'sum' 取过滤点的和

官方对这几个值的解释很模糊,我没有搞明白什么意思,只能自己来试。

这个是不修改任何采样,渲染出来的图,大概需要300-400毫秒。

“average”

 

“max”

\

"min"

function,这个是网上查到的写法

 

d.sampling = function(frame) {
    return frame[0]
}

 

从图上来看,看不出这几种有什么区别,那就用前端的方法来解决,记录setOption的时间

console.time('test')
this.echarts.setOption(option)
console.timeEnd('test')

每个方法的平均渲染时间一目了然,最后决定用average

// [280,288,273,275,276,280,278,284,278,275]  =>278.7
d.sampling = 'average'
// [288,299,268,287,267,284,462,290,273,274]  =>299.2
d.sampling = 'max'
// [333,368,289,279,299,316,296,270,274,298]  =>302.2
d.sampling = 'min'
// [286,287,280,288,442,276,337,310,265,273]  =>304.4
d.sampling = function(frame) {
  return frame[0]
}

 搞掂!

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Echartssampling是一种降采样策略,用于处理大量数据加载时的性能问题,特别是在dataZoom组件拖动缩放时间轴时的卡顿问题。通过降低数据点的数量,可以有效减少渲染时间和图表的数据量,提高图表的加载速度和性能表现。sampling的具体实现方法有多种,例如使用平均值、最大值、最小值或自定义函数来进行降采样。不同的降采样方法会根据数据的特性选择合适的数据点进行展示,从而保持图表的趋势和准确性。通过使用sampling,可以解决Echarts在加载大量数据时出现的性能问题,提升用户的体验和交互性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts-sampling降采样](https://blog.csdn.net/Yana1225/article/details/120185727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Echarts高级进阶教程:图表渲染大数据量导致卡顿加载时间慢等问题的解决方案](https://blog.csdn.net/weixin_41290949/article/details/109020817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值