数据可视化-ECharts Html项目实战(7)

news/2024/5/14 15:08:10

 在之前的文章中,我们学习了如何设置漏斗图、仪表盘。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢

数据可视化-ECharts Html项目实战(6)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_49513817/article/details/136998085?spm=1001.2014.3001.5501今天的文章,会带着大家学习ECharts特殊图标中的散点图与仪表图的基础上,教给大家如何设置它们的特殊效果,例如散点图的涟漪效果,仪表盘的随机动态指针效果,希望你能在本篇文章中有所收获。

目录

一、知识回顾

二、散点图涟漪效果

三、仪表盘随机动态效果

拓展-两图关键词及作用

1.散点图

2.仪表盘


一、知识回顾

 散点图我们需要将将type属性更改一下为funnel就行了,

这样就完成了

而在仪表盘的设置中

设置的就有点多了,要设置仪表盘的半径,仪表盘的起始角度和结束角度,仪表盘的指针与刻度,并且需要将我们的type更改为gauge

现在,开始我们今天的学习吧。

二、散点图涟漪效果

 涟漪效果,我们需要设置的比较多,但大多数都是让涟漪效果更加好看。

{  // 图表类型为带有特效的散点图  type: 'effectScatter',  // 是否在鼠标悬浮时不显示图形,false表示显示  silent: false,  // 图表系列名称  name: '极值',  // 是否启用图例联动,false表示不启用  legendHoverLink: false,  // 是否启用鼠标悬浮时的动画效果,false表示不启用  hoverAnimation: false,  // 特效类型,这里为'ripple',表示涟漪效果  effctType: 'ripple',  // 特效的触发时机,'render'表示在渲染时就触发特效  showEffectOn: 'render',  // 涟漪特效的配置项  rippleEffect: {  // 涟漪动画的周期,单位秒  period: 2,  // 涟漪的缩放比例  scale: 5.5,  // 涟漪的绘制方式,'fill'表示填充  brushType: 'fill',  },  // 数据点的图形大小  symbolSize: 20,  // 数据集,每个数组元素代表一个数据点,第一个值为x轴坐标,第二个值为y轴坐标  data: [  [367, 1695026.6],    // 第一个数据点  [2059, 9903786.32]   // 第二个数据点  ]  
}

以上就是我们涟漪效果需要设置的配置项,没什么难度。

现在,把它插入一个客户数与销售额对比表中看看效果。

散点图涟漪效果演示

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/echarts.js"></script></head><body><div id="main" style="width: 820px; height: 600px"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById("main"));var option = {title: {text: '客户销售比',},color: ['crimson', 'lightpink'],xAxis: {scale: true,name: '客户数量',color: 'lightpink',},yAxis: {scale: true,name: '销售额',},series: [{type:'effectScatter',silent:false,name:'极值',legendHoverLink:false,hoverAnimation:false,effctType:'ripple',showEffectOn:'render',rippleEffect:{period:2,scale:5.5,brushType:'fill',},symbolSize:20,data:[[367, 1695026.6],    [2059, 9903786.32]]},{type: 'scatter',symbolSize: 20,data: [[468, 3134352.75],[1547, 8150670.62],[748, 4677846.24],[601, 4234075.23],[2059, 9903786.32],[429, 2657902.04],[1012, 5128837.07],[561, 3954075.17],[422, 2290201.87],[1188, 6193413.66],[367, 1695026.6],[1232, 6736514.25],],}],};myChart.setOption(option);</script>
</body></html>

同时,我们也可以插入图片来变成我们的一个散点,并形成涟漪。

            {type:'effectScatter',silent:false,name:'极值',legendHoverLink:false,hoverAnimation:false,effctType:'ripple',showEffectOn:'render',rippleEffect:{period:2,scale:5.5,brushType:'fill',},symbol: 'image://image/2.png',symbolSize:20,data:[[367, 1695026.6],    [2059, 9903786.32]]},

 快去练习吧

三、仪表盘随机动态效果

 在ECharts要设置我们的动态仪表盘的效果,就离不开我们的setInterval 函数来进行我们的一个图表定时更新。

setInterval(function() {  option.series[0].data[0].value = parseFloat((Math.random() * 100).toFixed(2));  option.series[1].data[0].value = parseFloat((Math.random() * 100).toFixed(2)); // 假设第二个仪表盘的值也在0-100之间  myChart.setOption(option, true);  }, 2000);  
  • setInterval(function() { ... }, 2000);它是一个定时器,我给定的数值是2000,那就代表他每2000毫秒会更具我给定的数值刷新一次图表。
  • 而Math.rabom()*100就是在1到100中生成一个浮点数,保证它随机生成的数值不会超过我们刻度给定的最高值。
  • .toFixed将生成的浮点数转化为保留两位小数的字符串。最后将值赋给option。这样,就达到了我们所预期的随机动态效果,

那么现在,上视频。

仪表盘动态效果演示

<!DOCTYPE html>  
<html>  
<head>  <meta charset="utf-8">  <!-- 引入ECharts脚本 -->  <script src="js/echarts.js"></script>  
</head>  
<body>  <div id="main" style="width: 800px;height: 600px;"></div>  <script type="text/javascript">  var myChart = echarts.init(document.getElementById('main'));  var option = {  title: {  text: '速度',  textStyle: {  color: 'red'  },  left: 15,  top: 0  },  series: [  {  name: 'G1',  type: 'gauge',  center: ['25%', '50%'], // 第一个仪表盘的位置  radius: '50%', // 第一个仪表盘的半径  progress: {  show: true  },  detail: {  valueAnimation: true,  formatter: '{value}'  },  data: [  {  value: 65,  name: '1'  }  ]  },  {  name: 'G2', // 仪表盘名称建议唯一  type: 'gauge',  center: ['75%', '50%'], // 第二个仪表盘的位置  radius: '50%', // 第二个仪表盘的半径  progress: {  show: true  },  detail: {  valueAnimation: true,  formatter: '{value}'  },  data: [  {  value: 80,  name: '2'  }  ]  }  ]  };  myChart.setOption(option);  setInterval(function() {  option.series[0].data[0].value = parseFloat((Math.random() * 100).toFixed(2));  option.series[1].data[0].value = parseFloat((Math.random() * 100).toFixed(2)); // 假设第二个仪表盘的值也在0-100之间  myChart.setOption(option, true);  }, 2000);  </script>  
</body>  
</html>

现在快去尝试吧

拓展-两图关键词及作用

1.散点图

关键词名称描述举例
涟漪效果 (rippleEffect)当鼠标悬停在散点上时,产生涟漪扩散效果,增强交互体验。涟漪效果可以设置为 { scale: 5, period: 4 },其中 scale 控制涟漪的大小,period 控制涟漪的动画周期。
散点大小 (symbolSize)散点的大小可以根据数据值进行动态调整,以更直观地展示数据大小关系。可以使用函数来设置 symbolSize,例如 symbolSize: function (val) { return val[2] / 10; },其中 val 是散点的数据值。
散点形状 (symbol)散点的形状可以是圆形、方形、三角形等,也可以自定义图片作为形状。可以设置 symbol: 'circle' 来使用圆形散点,或者 symbol: 'image://url' 来使用自定义图片作为散点形状。
散点颜色 (itemStyle.color)散点的颜色可以根据数据值进行动态调整,或者使用渐变色、纹理等效果。可以使用函数来设置颜色,例如 itemStyle: { color: function (params) { return params.data[2] > 10 ? '#ff0000' : '#00ff00'; } },根据数据值大于或小于 10 来设置不同颜色。
标签显示 (label)可以在散点上显示标签,展示数据值或其他信息。可以设置 label: { show: true, formatter: '{b}' } 来显示散点的数据值作为标签。
焦点高亮 (emphasis)当鼠标悬停在散点上时,可以通过改变散点的颜色、大小等属性来实现焦点高亮效果。可以设置 emphasis: { itemStyle: { color: '#ff0000' } } 来在鼠标悬停时改变散点的颜色。

2.仪表盘

关键词名称描述举例
不规则刻度仪表盘的刻度可以根据需要设置为不规则分布,以突出特定区间。设置 axisLabel 的 formatter 函数,根据值动态调整标签的显示,如 formatter: function (value, index) { return value > 50 ? value * 2 : value; }
进度条动态渐变色仪表盘的进度条可以根据当前值动态改变颜色,以体现数据的变化趋势。使用 splitLine 或 splitArea 配置项,设置不同区间的颜色或渐变色。
指针效果仪表盘的指针可以定制样式和动态效果,如颜色、形状和动画。设置 axisLine 的 lineStyle 属性来自定义指针的颜色、粗细等。
提示框自定义鼠标悬停时显示的提示框可以自定义内容、样式和位置。使用 series.tooltip 配置项,自定义 formatter 函数和样式属性,如 backgroundColorborderColor 等。
动画效果仪表盘在初始化或数据更新时可以有动态加载的动画效果。设置 animationDurationanimationEasing 等属性来控制动画的持续时间和缓动函数。
交互事件为仪表盘添加点击、鼠标悬停等交互事件,实现更丰富的交互功能。使用 ECharts 的事件监听机制,如 myChart.on('click', function (params) { /* 处理点击事件 */ })

http://www.mrgr.cn/p/57132057

相关文章

学习JavaEE的日子 Day32 线程池

Day32 线程池 1.引入 一个线程完成一项任务所需时间为&#xff1a; 创建线程时间 - Time1线程中执行任务的时间 - Time2销毁线程时间 - Time3 2.为什么需要线程池(重要) 线程池技术正是关注如何缩短或调整Time1和Time3的时间&#xff0c;从而提高程序的性能。项目中可以把Time…

DataX-Oracle新增writeMode支持update

目录 前言 第一步下载源码 第二步修改源码 1、Oraclewriter 2、WriterUtil 2.1、修改getWriteTemplate方法 2.2、新增onMergeIntoDoString与getStrings方法 3、CommonRdbmsWriter 3.1、修改startWriteWithConnection 3.2、修改doBatchInsert 3.3、修改fillPreparedStatem…

Flutter 拦截系统键盘,显示自定义键盘

一、这里记录下在开发过程中&#xff0c;下单的时候输入金额需要使用自定义的数字键盘 参考链接: https://juejin.cn/post/7166046328609308685 效果图 二、屏蔽系统键盘 怎样才能够在输入框获取焦点的时候&#xff0c;不让系统键盘弹出呢&#xff1f;同时又显示我们自定义的…

【SpringBoot从入门到精通】01_SpringBoot概述

一、Spring与SpringBoot 1.1 Spring Spring 是一款目前主流的 Java EE 轻量级开源框架&#xff0c;是 Java 世界最为成功的框架之一。Spring 由“Spring 之父”Rod Johnson(罗宾约翰逊) 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。 广义…

新网站收录时间是多久,新建网站多久被百度收录

对于新建的网站而言&#xff0c;被搜索引擎收录是非常重要的一步&#xff0c;它标志着网站的正式上线和对外开放。然而&#xff0c;新网站被搜索引擎收录需要一定的时间&#xff0c;而且时间长短受多种因素影响。本文将探讨新网站收录需要多长时间&#xff0c;以及新建网站多久…

Prometheus +Grafana +node_exporter可视化监控Linux + windows虚机

1、介绍 待补充 2、架构图 Prometheus &#xff1a;主要是负责存储、抓取、聚合、查询方面。 node_exporter &#xff1a;主要是负责采集物理机、中间件的信息。 3、搭建过程 配置要求&#xff1a;1台主服务器 n台从服务器 &#xff08;被监控的linux或windows虚机&am…

【分布式】——CAPBASE理论

CAP&BASE理论 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/tree-learning-notes ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html Sprin…

数仓 - [04] 数仓分层

数仓分层是一种将数据仓库按照不同的层级进行组织和管理的方法。每个层级具有不同的功能和目的,旨在支持数据分析、报告和决策等不同的业务需求。一、数仓分层的意义和目的数仓分层的主要目的是实现数据的高效访问和分析,提高数据的可用性和性能,同时提供更好的灵活性和可扩…

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联&#xff0c;该服务…

Hybrid-PSC:基于对比学习的混合网络,解决长尾图片分类 | CVPR 2021

论文提出新颖的混合网络用于解决长尾图片分类问题,该网络由用于图像特征学习的对比学习分支和用于分类器学习的交叉熵分支组成,在训练过程逐步将训练权重调整至分类器学习,达到更好的特征得出更好的分类器的思想。另外,为了节省内存消耗,论文提出原型有监督对比学习。从实…

axios发送get请求但参数中有数组导致请求路径多出了“[]“的处理办法

一、情况 使用axios发送get请求携带了数组参数时&#xff0c;请求路径中就会多出[]字符&#xff0c;而在后端也会报错 二、解决办法 1、安装qs 当前项目的命令行中安装 npm install qs2、引入qs库(使用qs库来将参数对象转换为字符串) // 全局 import qs from qs Vue.proto…

STM32使用USART发送数据包指令点亮板载LED灯

电路连接&#xff1a; 连接显示屏模块&#xff0c;显示屏的SCL在B10&#xff0c;SDA在B11。 程序目的&#xff1a; 发送LED_ON指令打开板载LED灯&#xff0c;发送LED_OFF关闭板载LED灯&#xff0c;与上一个博客不同&#xff0c;这个实际上是实现串口收发文本数据包。 …

使用DBever连接人大金仓数据库

下载安装DBever首先需要下载并安装DBever,可以在DBever官网上下载最新版的安装程序,根据提示进行安装即可。 打开人大金仓数据库服务 在连接人大金仓数据库之前,需要确保人大金仓数据库服务已经启动。可以在服务列表中找到人大金仓数据库服务,并启动它。使用DBever连接人大…

【数据库】postgresql截取最后一个字符之前的所有字符,如V1.0.0.20230731110947中取V1.0.0

在PostgreSQL中,我们可以使用position函数和split_part函数来截取最后一个.之前的所有字符。这两个函数都非常有用,尤其是在处理文本数据时。 position函数 position函数用于查找一个字符串中某个子串的位置。它的语法如下: POSITION(substring IN string)其中,substring是…

DER编码

一、任务详情参考附件中图书p120 中7.1的实验指导,完成DER编码 Name实例中,countryName改为“CN”,organization Name-"你的学号" commoaName="你的姓名拼音" 用echo -n -e "编码" > 你的学号.der中,用OpenSSL asn1parse 分析编码的正确性…

揭秘’在家答答题,无需经验、无论男女、单号轻松日产200+的一个玩法

项目简介 公众号&#xff1a;老A程序站 这个项目是人人可参与的&#xff0c;无需支付任何费用&#xff0c;只需投入时间即可。每天的任务主要是回答问题。 项目 地 址 &#xff1a; laoa1.cn/1457.html 如果遇到不会的问题&#xff0c;可以直接使用百度进行搜索。我们通过…

YOLOF:单层特征检测也可以比FPN更出色 | CVPR 2021

论文通过分析发现FPN的成功在于divide-and-conquer策略解决了目标检测的优化问题,借此研究设计了仅用单层特征预测的高效检测网络YOLOF。YOLOF在结构上没有很多花哨的结构,却在准确率、推理速度和收敛速度上都有不错的提升,相对于眼花缭乱的FPN魔改结构,十分值得学习 来源:…

原型链-(前端面试 2024 版)

来讲一讲原型链 原型链只存在于函数之中 四个规则 1、引用类型&#xff0c;都具有对象特性&#xff0c;即可自由扩展属性。 2、引用类型&#xff0c;都有一个隐式原型 __proto__ 属性&#xff0c;属性值是一个普通的对象。 3、引用类型&#xff0c;隐式原型 __proto__ 的属…

RSTP环路避免实验(华为)

思科设备参考&#xff1a;RSTP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RSTP (Rapid Spanning Tree Protocol) 是从STP发展而来 • RSTP标准版本为IEEE802.1w • RSTP具备STP的所有功能&#xff0c;可以兼容STP运行 • RSTP和STP有所不同 减少了…

TitanIDE与传统 IDE 比较

与传统IDE的比较 TitanIDE 和传统 IDE 属于不同时代的产物&#xff0c;在手工作坊时代&#xff0c;一切都是那么的自然&#xff0c;开发者习惯 Windows 或 MacOS 原生 IDE。不过&#xff0c;随着时代的变迁&#xff0c;软件行业已经步入云原生时代&#xff0c;TitanIDE 是顺应…