【Echarts 实战指南】解锁动态历史曲线之谜

在工作中,大家是否曾遇到过这样一种需求呢?需获取设备最近 10 分钟的历史数据。设备实时数据每 2 秒推送一次,且要把历史数据曲线变成动态变化的状态。倘若设备最近 10 分钟的历史数据为 20 个点,那么现在每 2 秒就要将最前面的点删除,同时推送最新的数据。一旦数据发生变化,便加载历史曲线函数,从而达成动态效果。
在这里插入图片描述

template

<template><a-card shadow="none" style="margin:20px 0 0 20px" title=""><div class="item" ref="chartContainer6"></div></a-card>
</template>

script

<script setup>import * as echarts from 'echarts'import { ref, onMounted, onUnmounted } from 'vue'let chartContainer6 = ref(null)//假设这是最近 10 分钟的历史数据,实际项目中请求接口const data1 = ref([20, 25, 24, 21, 30, 26, 35, 30, 31, 36, 28, 25, 31, 36, 19, 22, 50, 40, 25, 30]);const data2 = ref([40, 56, 42, 65, 45, 48, 42, 52, 45, 50, 48, 45, 51, 56, 49, 52, 50, 60, 49, 51]);const time = ref(['17:00:00', '17:00:02', '17:00:04', '17:00:06', '17:00:08', '17:00:10', '17:00:12', '17:00:14', '17:00:16', '17:00:18','17:00:20', '17:00:22', '17:00:24', '17:00:26', '17:00:28', '17:00:30', '17:00:32', '17:00:34', '17:00:36', '17:00:38']);//当前时间:时分秒function getCurrentTime() {const now = new Date();let hours = now.getHours();let minutes = now.getMinutes();let seconds = now.getSeconds();hours = hours < 10 ? '0' + hours : hours;minutes = minutes < 10 ? '0' + minutes : minutes;seconds = seconds < 10 ? '0' + seconds : seconds;return `${hours}:${minutes}:${seconds}`;}function getRandomArbitrary(min, max) {return Math.random() * (max - min) + min;}// 生成随机数并推入数组function pushRandomData() {// 删除数组的第一个元素if (data1.value.length > 0) data1.value.shift();if (data2.value.length > 0) data2.value.shift();if (time.value.length > 0) time.value.shift();// 添加新的随机数值const randomValue1 = Math.floor(getRandomArbitrary(20, 40));const randomValue2 = Math.floor(getRandomArbitrary(40, 60));data1.value.push(randomValue1);data2.value.push(randomValue2);time.value.push(getCurrentTime());}function realtimeCurve() {const chart = echarts.init(chartContainer6.value);const options = {tooltip: {show: true,trigger: 'axis'},legend: {show: true,type: "scroll",bottom: 0,textStyle: {color: '#fff'}},grid: {top: '10%',left: '5%',right: '2%',bottom: '15%',containLabel: true},xAxis: [{type: 'category',boundaryGap: true,axisLabel: {textStyle: {color: '#11EEE1',padding: 6,fontSize: 10},formatter: function (data) {return data}},splitLine: {show: false,lineStyle: {color: "#11EEE1"},},axisLine: {show: true,textStyle: {color: '#11EEE1',},},axisTick: {show: true,textStyle: {color: '#11EEE1',},},data: time.value}],yAxis: [{name: '',splitLine: {show: false,lineStyle: {color: "#11EEE1"},},axisLine: {show: true,textStyle: {color: '#11EEE1',},},axisTick: {show: true,textStyle: {color: '#11EEE1',},},axisLabel: {show: true,textStyle: {color: '#11EEE1',padding: 6,},formatter: function (value) {if (value === 0) {return value}return value}},}],series: [{name: 'High Press',type: 'line',symbol: 'circle',showAllSymbol: true,symbolSize: 0,smooth: true,lineStyle: {normal: {width: 2,color: "rgba(33,150,243, 1)",}},itemStyle: {color: "rgba(33,150,243, 1)",borderWidth: 2},tooltip: {show: true},data: data1.value}, {name: 'Low Press 1',type: 'line',symbol: 'circle',showAllSymbol: true,symbolSize: 0,smooth: true,lineStyle: {normal: {width: 2,color: "rgba(76,175,80, 1)",}},itemStyle: {color: "rgba(76,175,80, 1)",borderWidth: 2},tooltip: {show: true},data: data2.value}]}chart.setOption(options);
}
// 设置定时器,每2秒执行一次
intervalId = setInterval(() => {pushRandomData(); // 当前时间realtimeCurve(); // 历史曲线
}, 2000);
onMounted(() => {realtimeCurve()
});
onUnmounted(() => {if (intervalId) {clearInterval(intervalId);}
});
</script>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计Python深度学习房价预测 房源可视化 房源爬虫 二手房可视化 二手房爬虫 递归决策树模型 机器学习 深度学习 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 房地产是促进我国经济持续增…

车辆管理新篇章:SpringBoot技术解析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

电感的学习

电感是表示电路中电流变化对电压影响的物理量&#xff0c;常用符号 LLL 表示。电感的基本公式可以从其定义和基本特性中得出&#xff0c;主要包括以下几个方面&#xff1a; 1. 电感的定义 2. 电感能量存储 3. 自感与互感 自感&#xff1a;电感器自身的电感&#xff0c;表示电…

stata基本操作

文章目录 数据导入及存储变量的标签、审视数据变量的标签审视数据数据删除数据排序 画图直方图使用帮助文件散点图 统计分析描述性分析频数分析相关分析 生成新变量、计算器、终止命令生成新变量设置哑变量修改变量名更改变量内容调用命令和终止命令 日志命令库更新、学习资源 …

从零开始学PHP之helloworld

前言 每一门编程语言的第一个程序就是输出hell world&#xff08;别杠&#xff0c;杠就是你对&#xff09; 开始 上一篇讲完了开发环境的安装&#xff0c;这次讲编辑器的安装&#xff0c;顺带完成上一篇的作业&#xff08;输出hello world&#xff09; 安装PHPstorm 我用的…

基于SpringBoot+Vue的旅游服务平台【提供源码+答辩PPT+参考文档+项目部署】

&#x1f4a5; ① 前言&#xff1a;这两年毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的JavaWeb项目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff01; ❗② 如何解决这类问题&#xff1f; 让我们能够顺利通过毕业&#xff0c;我也一直在不断思考、…

用自己的数据集复现YOLOv5

yolov5已经出了很多版本了&#xff0c;这里我以目前最新的版本为例&#xff0c;先在官网下载源码&#xff1a;GitHub - ultralytics/yolov5: YOLOv5 &#x1f680; in PyTorch > ONNX > CoreML > TFLite 然后下载预训练模型&#xff0c;需要哪个就点击哪个模型就行&am…

机器视觉入门基础相关概念一 ——单目相机模型

机器视觉入门基础相关概念 相机模型 引言介绍&#xff1a;如果只是希望获取图像上的一些信息&#xff08;例如特征提取、拟合等&#xff09;&#xff0c;那么我们不会对三维空间中相机的位置有所要求。但如果希望通过二维的图像去理解三维空间中摄像机的信息&#xff0c;或者是…

【Qt】控件——Qt按钮类控件、常用的按钮类控件、按钮类控件的使用、Push Button、Radio Button、Check Box

文章目录 Qt3. Qt按钮类控件Push ButtonRadio ButtonCheck Box Qt 3. Qt按钮类控件 Push Button 使用 QPushButton 表示一个按钮。当点击按钮时可以触发各种事件。QPushButton 继承自 QAbstractButton。这个类是一个抽象类。是其他按钮的父类。 PushButton和QAbstractButton的…

阿里云linux系统扩容分区

系统扩容需要进行三步操作&#xff1a;①服务器扩容云盘 ② 扩容分区 ③ 扩容文件系统 参考&#xff1a;https://help.aliyun.com/zh/ecs/user-guide/extend-the-partitions-and-file-systems-of-disks-on-a-linux-instance?spma2c4g.11186623.0.0.6a094862DCMnnM#de3365e1d4l…

国内如何下载谷歌浏览器(chrome浏览器)历史版本和chromedriver驱动,长期更新,建议收藏

众所周知&#xff0c;google是一直被国内屏蔽的&#xff0c;有时候想要下载个chrome浏览器都要去外网&#xff0c;或者到处去搜索才能下载到。因为下载chrome浏览器的这个网址&#xff1a;google.com/chrome/ 在国内是一直被屏蔽掉的。 今天主要讲解的是国内ChromeDriver 的下…

mac安装brew时踩坑解决方案

安装包 mac上如果按照git等工具可能会使用brew&#xff0c;例如使用&#xff1a;$ brew install git命令&#xff0c;如果电脑没有按照brew&#xff0c;则会提示&#xff1a;zsh: command not found: brew 解决方案 需要我们打开brew的官网https://brew.sh/&#xff0c;复制…

spring |Spring Security安全框架 —— 认证流程实现

文章目录 开头简介环境搭建入门使用1、认证1、实体类2、Controller层3、Service层3.1、接口3.2、实现类3.3、实现类&#xff1a;UserDetailsServiceImpl 4、Mapper层3、自定义token认证filter 注意事项小结 开头 Spring Security 官方网址&#xff1a;Spring Security官网 开…

Java @RequestPart注解:同时实现文件上传与JSON对象传参

RequestPart注解&#xff1a;用于处理multipart/form-data请求的一部分&#xff0c;通常用于文件上传或者处理表单中的字段。 java后端举例&#xff1a; PostMapping("/fileTest")public AjaxResult fileTest(RequestPart("file") MultipartFile file,Req…

2023年五一杯数学建模C题双碳目标下低碳建筑研究求解全过程论文及程序

2023年五一杯数学建模 C题 双碳目标下低碳建筑研究 原题再现&#xff1a; “双碳”即碳达峰与碳中和的简称&#xff0c;我国力争2030年前实现碳达峰&#xff0c;2060年前实现碳中和。“双碳”战略倡导绿色、环保、低碳的生活方式。我国加快降低碳排放步伐&#xff0c;大力推进…

32. 问题 - EQ工具不能用

1. 概述 按照工具要求,修改代码中的宏,开启EQ调试功能

位运算题目-Java实现-LeetCode题解:判断字符是否唯一-丢失的数字-两整数之和-只出现一次的数字 II-消失的两个数字

这里是Themberfue 上一篇文章讲完了常见位运算的技巧以及总结 那么本章则通过五道题来运用这些技巧 判定字符是否唯一 题目解析 本题要求判断给定字符串中的字符是否唯一&#xff0c;也就是每个字符是否只出现一次 算法讲解 本题用哈希表遍历每一个字符也可以解决 如果这题使…

网络空间安全之一个WH的超前沿全栈技术深入学习之路(二:渗透测试行业术语扫盲)作者——LJS

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二 ➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advan…

Java Memory Model

内存模型 JMM(Java 内存模型)主要定义了对于一个共享变量&#xff0c;当另一个线程对这个共享变量执行写操作后&#xff0c;这个线程对这个共享变量的可见性。 Java Memory Model&#xff08;JMM&#xff09;&#xff0c;本身是一种抽象的概念&#xff0c;实际上并不存在&…

头戴耳机最值得购买的牌子有哪些?四款公认口碑和性价比高推荐

说到头戴式耳机&#xff0c;大部分人都会面另一个问题&#xff0c;那就是如何选购一款好用实惠的头戴耳机。有的人图便宜&#xff0c;结果不仅音质不好&#xff0c;佩戴还不舒服&#xff0c;而有的人图牌子&#xff0c;结果却交了“智商税”&#xff01;俗话说买对不买贵&#…