Echarts动画效果:实现数据左右移动
1、业务背景
图形实时从后台获取数据,让图形从最右边出现,每隔一秒向左移一位,当最左边的数据移到Y轴时,最左边的数据移出屏幕,最右边增加一个数。实现一个从右往左动画的效果
2、先看下项目中的demo解决实例
让数据从最右边出,不重复说了,利用数组的length特性
mounted(){
this.series.length = 50
this.fetchData();
}
其次就是对数据的处理:当数组长度大于设定的固定值时,删除数组的第一个元素;然后将获取到的值push到数组
fetchData(){
this.timer = setInterval(_ => {
getMonitorApi().then((res) => {
if(res.status === 200){
if(this.series.length > 50){
this.series.shift()
}
this.series.push(res.data.series.data)
this.xData = res.data.xData
this.drawLine()
}
})
},2000)
},
3、解决方案思路
(1)首先第一步考虑的是,获取到这个series的data数组:
var data= option.series[0].data;//获取数组
(2)其次是做一个定时器,随机生成一个随机数,push到数组,并且删除数组的第一个元素:
window.setInterval(function(){
data.shift();
var randomNum=parseInt(Math.random()*400)
data.push(randomNum);
},1000);
(3)然后是写一个刷新的函数,并把新的数据绑定到ECharts中:
function refreshData(){
var option = myChart.getOption();//获取页面的option
option.series[0].data = data;//设置新的数据
myChart.setOption(option);//绑定到ECharts
}
(4)最后在定时器里调用刷新函数,使数据产生移动效果
window.setInterval(function(){
data.shift();
var randomNum=parseInt(Math.random()*400)
data.push(randomNum);
console.log(data);
refreshData();
},1000);
补充:因为固定数组里面只有固定的显示个数,所以删除第一个,push加入最后一个,这样就产生了移动的效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律