echats 时间直方图示例

需求背景

某订单有N个定时任务,每个任务的执行时间已经确定,希望直观的查看该订单的任务执行趋势

查询SQL:

select UNIX_TIMESTAMP(DATE_FORMAT(exec_time,'%Y-%m-%d %H:%i')) execTime, count(*) from `order_detail_task` where order_no = '20240219085752308913310000110' GROUP by execTime order by execTime;

在这里插入图片描述
把查询结果copy出来,粘贴到 https://echarts.apache.org/zh/spreadsheet.html,转换成二维数组
在这里插入图片描述
把转换好的数据copy出来,代入到 baseData 中的 new Map() 中。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ECharts 时间直方图</title><!-- 引入 ECharts --><script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script>
</head>
<body><!-- 创建一个容器来放置图表 --><div id="chart" style="width: 100%; height: 800px;"></div><script>// 创建 ECharts 实例var myChart = echarts.init(document.getElementById('chart'));// 初始数据, 数据库中统计结果, key为时间戳, value为个数let baseMap = new Map([[1708304400,8],[1708304460,4],[1708304520,8],[1708304580,4],[1708304640,5],[1708304700,3],[1708304760,10],[1708304820,2],[1708304880,6],[1708304940,5],[1708305000,6],[1708305060,5],[1708305120,6],[1708305180,5],[1708305240,7],[1708305300,6],[1708305600,5],[1708305660,6],[1708305720,9],[1708305780,8],[1708305840,4],[1708305900,10],[1708305960,13],[1708306020,10],[1708306080,13],[1708306140,10],[1708306200,15],[1708306260,10],[1708306320,9],[1708306380,13],[1708306440,11],[1708306500,6],[1708306560,1],[1708306860,2],[1708306920,9],[1708306980,5],[1708307040,4],[1708307100,6],[1708307160,3],[1708307220,4],[1708307280,3],[1708307340,3],[1708307400,5],[1708307460,4],[1708307520,3],[1708307580,2],[1708307640,4],[1708307700,3],[1708307760,6]]);// map集合的keysetlet keys = Array.from(baseMap.keys());// 最小key(起始时间戳)let startTime = Math.min(...keys);// 最大key(结束时间戳)let endTime = Math.max(...keys);let data = [];// 以分钟(60000ms)为步长for (let i = startTime; i <= endTime; i += 60) {if (baseMap.has(i)) {data.push([i*1000, baseMap.get(i)]);} else {// 第i分钟没有值,则value=0data.push([i*1000, 0]);}}option = {tooltip: {trigger: 'axis',position: function(pt) {return [pt[0], '10%'];}},title: {left: 'center',text: '直方图'},toolbox: {feature: {dataZoom: {yAxisIndex: 'none'},restore: {},saveAsImage: {},magicType: {type: ['line', 'bar']},dataView: {show: true,title: 'Data View'}}},xAxis: {type: 'time',maxInterval: 60000,boundaryGap: false,axisLabel: {rotate: 45},},yAxis: {type: 'value',boundaryGap: [0, '100%']},dataZoom: [{type: 'inside',filterMode: 'filter',start: 0,end: 30}, {start: 0,end: 30}],series: [{name: 'Fake Data',type: 'line',smooth: true,symbol: 'none',areaStyle: {},data: data}]};// 渲染图表myChart.setOption(option);</script>
</body>
</html>

效果如下:
在这里插入图片描述

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

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

相关文章

LeetCode--2388. 将表中的空值更改为前一个值

文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述 表: CoffeeShop ---------------------- | Column Name | Type | ---------------------- | id | int | | drink | varchar | ----------------------id 是该表的主键&#xff08;具有唯一值的列&…

Jmeter教程-JMeter 环境安装及配置

Jmeter教程 JMeter 环境安装及配置 在使用 JMeter 之前&#xff0c;需要配置相应的环境&#xff0c;包括安装 JDK 和获取 JMeter ZIP 包。 安装JDK 1.JDK下载 示例环境为Windows11环境&#xff0c;读者应根据实际环境下载JDK的安装包。 JDK下载地址&#xff1a; Java21 下载 …

【Linux】软件包管理器 yum | vim编辑器

前言: 软件包管理器 yum和vim编辑器讲解 文章目录 软件包管理器 yum编辑器-vim四种模式普通模式批量化注释和批量化去注释末行模式临时文件 软件包管理器 yum yum&#xff08;Yellowdog Updater, Modified&#xff09;是一个在基于 RPM&#xff08;管理软件包的格式和工具集合&…

如何将多张图片变成一张?一个工具在线分享

如何将多张图片变成一张gif动图&#xff1f;现在gif动图非常受大家的欢迎我们想要将自己手中的多张图片变成一张gif动图时应该怎么制作呢&#xff1f;通过使用在线图片合成&#xff08;https://www.gif.cn/&#xff09;工具&#xff0c;不需要下载软件&#xff0c;手机、pc均可…

(01)Hive的相关概念——架构、数据存储、读写文件机制

目录 一、架构及组件介绍 1.1 Hive整体架构 1.2 Hive组件 1.3 Hive数据模型&#xff08;Data Model&#xff09; 1.3.1 Databases 1.3.2 Tables 1.3.3 Partitions 1.3.4 Buckets 二、Hive读写文件机制 2.1 SerDe 作用 2.2 Hive读写文件流程 2.2.1 读取文件的过程 …

Pinia 官网速通

前言&#xff1a;参考 Pinia 中文文档&#xff0c;在 Vue3 配合 ts 中的使用。 一&#xff1a;介绍 1. 什么是 Pinia Pinia 是 Vue 的存储库&#xff0c;允许跨组件/页面共享状态。 1.1. 为什么要使用 Pinia&#xff1f; 热模块更换、保持任何现有状态、使用插件扩展 Pinia …

Opencv实战(1)读取与图像操作

Opencv 文章目录 Opencv一、读取图片1.imshow2.namedWindow3.imshow4.效果图 二、像素操作(1).访问像素1. at()2.Mat_ (2).遍历像素1.指针遍历2.迭代器遍历 (3).threshold(4).通道分离1.split2.merge (5)Gamma矫正 三、深浅拷贝 一、读取图片 1.imshow Mat imread(const stri…

DS:八大排序之归并排序、计数排序

创作不易&#xff0c;感谢三连支持&#xff01;&#xff01; 一、归并排序 1.1 思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子…

【cmu15445c++入门】(9)C++ 智能指针shared_ptr

一、智能指针shared_ptr std::shared_ptr 是一种智能指针&#xff0c;它通过指针保留对象的共享所有权。这意味着多个共享指针可以拥有同一个对象&#xff0c;并且可以复制共享指针。 二、代码 // In this file, well talk about std::shared_ptr, which is a C smart pointer…

LeetCode 第385场周赛个人题解

目录 100212. 统计前后缀下标对 I 原题链接 题目描述 接口描述 思路分析 代码详解 100229. 最长公共前缀的长度 原题链接 题目描述 接口描述 思路分析 代码详解 100217. 出现频率最高的素数 原题链接 题目描述 接口描述 思路分析 代码详解 100212. 统计前后缀…

氢氧化铝市场研究:预计2029年将达到15亿美元

近年来&#xff0c;随着全球工业和建筑业的快速发展&#xff0c;氢氧化铝的需求不断增加。特别是在汽车、航空航天、电子产品等行业中&#xff0c;氢氧化铝的应用越来越广泛。此外&#xff0c;环境意识的提升也推动了氢氧化铝市场的增长&#xff0c;因为其可回收再利用的特性符…

【C++】C++11中

C11中 1.lambda表达式2.可变参数模板3.包装器 1.lambda表达式 在前面我们学习过仿函数。仿函数的作用到底是干什么的呢&#xff1f; 它为了抛弃函数指针&#xff01; 主要是因为函数指针太难学了 就比如下面这个&#xff0c;看着也挺难受的。 它的参数是一个函数指针&#x…

使用XTuner微调书生·浦语2大模型实战

一、XTuner安装 1、代码准备 mkdir project cd project git clone https://github.com/InternLM/xtuner.git 2、环境准备 cd xtuner pip install -r requirements.txt #从源码安装 pip install -e .[all] 3、查看配置文件列表 XTuner 提供多个开箱即用的配置文件&#xf…

Python 二维矩阵加一个变量运算该如何避免 for 循环

Python 二维矩阵加一个变量运算该如何避免 for 循环 引言正文方法1------使用 for 循环方法2------不使用 for 循环引言 今天写代码的时候遇到了一个问题,比如我们需要做一个二维矩阵运算,其中一个矩阵是 2x2 的,另一个是 2x1 的。在这个二维矩阵中,其中各个参数会随着一个…

devc++跑酷小游戏3.0.0

导航&#xff1a; Dev-c跑酷小游戏 1.0.0 devc跑酷小游戏1.2.5 devc跑酷游戏1.2.6 devc跑酷游戏2.0.0 devc跑酷游戏2.0.1 devc跑酷游戏2.4.0 【更新内容每日废话】 关卡数量没变&#xff0c;每个都微调了一下。作者再此保证能过&#xff0c;都测试过&#xff0c;过不了…

怎样保证数据库和redis里的数据一致性

使用缓存更新策略&#xff1a;在更新数据库时&#xff0c;同时更新Redis中相应的数据。这可以通过编写代码来实现&#xff0c;在数据库更新操作完成后&#xff0c;同步更新Redis中对应的数据。这可以通过在代码中使用事务来保证更新的原子性&#xff0c;确保数据库和Redis中的数…

2月19日

ApplicationContextInitializer SpringBoot 框架在设计之初&#xff0c;为了有更好的兼容性&#xff0c;在不同的运行阶段&#xff0c;提供了非常多的可扩展点&#xff0c;可以让程序员根据自己的需求&#xff0c;在整个Spring应用程序运行过程中执行程序员自定义的代码Applic…

贪心+堆维护,HDU1789Doing Homework again

一、题目 1、题目描述 Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after the deadline, the teacher will reduc…

【深蓝学院】移动机器人运动规划--第5章 最优轨迹生成--笔记

文章目录 1. Preliminaries2. Multicopter dynamics and differential flatness&#xff08;多旋翼动力学和微分平坦特性&#xff09;2.1 Differential Flatness2.2 具体建模2.3 Flatness Transformation的解析推导 3. Trajectory Optimization轨迹优化3.1 Problem formulation…

C++学习Day06之继承中的同名成员处理

目录 一、程序及输出1.1 同名成员变量1.2 同名成员函数 二、分析与总结 一、程序及输出 1.1 同名成员变量 #include<iostream> using namespace std;class Base { public:Base(){this->m_A 10;}void func(){cout << "Base中的func调用" << e…