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

news2024/11/15 8:29:43

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

数据可视化-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.coloradmin.cn/o/1545103.html

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

相关文章

Spring Boot 3核心技术介紹集应用实例

文章目录 核心技术1. **配置管理**&#xff1a;2. **Starter依赖**&#xff1a;3. **自动配置**&#xff1a;4. **启动过程与扩展应用**&#xff1a;5. **日志管理**&#xff1a;6. **数据访问**&#xff1a;7. **计划任务**&#xff1a;8. **缓存**&#xff1a;9. **消息队列*…

RSTP环路避免实验(思科)

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

拥抱C++的深度和复杂性,挖掘更多可能 !——《C++20高级编程(第5版)》

&#xff0c;C难以掌握&#xff0c;但其广泛的功能使其成为游戏和商业软件应用程序中最常用的语言。即使是有经验的用户通常也不熟悉许多高级特性&#xff0c;但C20的发布提供了探索该语言全部功能的绝佳机会。《C20高级编程(第5版)》为C的必要内容提供了一个代码密集型、面向解…

蓝桥杯学习笔记(贪心)

在很久很久以前&#xff0c;有几个部落居住在平原上&#xff0c;依次编号为1到n。第之个部落的人数为 t 有一年发生了灾荒&#xff0c;年轻的政治家小蓝想要说服所有部落一同应对灾荒&#xff0c;他能通过谈判来说服部落进行联台。 每次谈判&#xff0c;小蓝只能邀请两个部落参…

【软考高项】十九、项目管理概论之价值驱动的项目管理知识体系

1、项目管理知识体系概述 重点记忆项目管理涉及内容&#xff1a;12项项目管理原则-10大知识领域&#xff08;10大管理&#xff09;-8大绩效域-5类过程组-4项生命周期-价值交付系统-组织战略和目标实现 2、项目管理原则 勤勉、尊重和关心他人 ①关注组织内部和外部的职责; ②坚…

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现二

【简单介绍】 基于目标检测算法YOLOv8和灵活的PyQt5界面开发框架&#xff0c;我们精心打造了一款集直观性、易用性和功能性于一体的目标检测GUI界面。通过深度整合YOLOv8在目标识别上的卓越能力与PyQt5的精致界面设计&#xff0c;我们成功研发出一款既高效又稳定的软件GUI。 …

Unity 布局控制器Content Size Fitter

Content Size Fitter是Unity中的一种布局控制器组件&#xff0c;用于根据其内容的大小来调整包含它的UI元素的大小。换句话来说就是&#xff0c;Content Size Fitter可以根据UI元素内部内容的大小&#xff0c;自动调整UI元素的大小&#xff0c;以确保内容能够正确显示。 如下图…

基于SpringBoot+MyBatis校园周边美食探索及分享平台

采用技术 基于SpringBootMyBatis校园周边美食探索及分享平台的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 前台首页 登录页面 美食鉴赏界面…

设计模式之适配器模式解析

适配器模式 1&#xff09;概述 将一个接口转换成用户希望的另一个接口&#xff0c;使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装器(Wrapper)&#xff1b; 在适配器模式中&#xff0c;通过增加一个新的适配器类来解决接口不兼容的问题&#xff0c;使得原本没有…

聚观早报 | 全新腾势N7将上市;哪吒L将于4月上市

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月26日消息 全新腾势N7将上市 哪吒L将于4月上市 比亚迪海豹荣耀版上市 vivo X Fold3细节曝光 一加Ace 3V正式开…

51单片机学习笔记10 IIC通讯和EEPROM

51单片机学习笔记10 IIC通讯和EEPROM 一、IIC通讯简介1. 基本特点优点缺点 2. 工作模式3. 整体流程4. 信号流程**起始信号****停止信号****应答信号**非应答信号主机等待从机应答完整写入过程完整读取过程 二、AT24C02 芯片介绍1. 引脚介绍2. 典型总线配置 三、开发示例1. 硬件…

Windows如何搭建 ElasticSearch 集群

单机 & 集群 单台 Elasticsearch 服务器提供服务&#xff0c;往往都有最大的负载能力&#xff0c;超过这个阈值&#xff0c;服务器 性能就会大大降低甚至不可用&#xff0c;所以生产环境中&#xff0c;一般都是运行在指定服务器集群中。 除了负载能力&#xff0c;单点服务器…

vscode安装mysql相关插件

在Visual Studio Code (VSCode) 中安装 MySQL 客户端插件可以让你在 VSCode 中直接连接到 MySQL 数据库&#xff0c;并执行 SQL 查询。以下是如何安装和使用 MySQL 客户端插件的步骤&#xff1a; 1.打开 VSCode。 2.按下 Ctrl Shift X 打开扩展商店&#xff08;或点击侧边栏…

React Native 应用打包

引言 在将React Native应用上架至App Store时&#xff0c;除了通常的上架流程外&#xff0c;还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

200W无感厚膜电阻-SOT227模压系列大功率电阻

EAK的200W-900W的厚膜无感电阻 SOT 227封装 安装在风冷或水冷散热器上的高功率电阻器 全树脂填充结构&#xff0c;散热片与电阻之间高绝缘电压 6个不同的版本 缓冲电阻 分压器 分断电阻 EAK封装SOT-227厚膜无感功率电阻 阻值范围:0.1Ω~1MQ 精度范围:1%~士10% 温度系数:…

命令模式(请求与具体实现解耦)

目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者&#xff08;Invoker&#xff09;和命令执行者&#xff08;receiver&#xff09;&#xff0c;使得 Invoker 不再直接引用 receiver&#xff0c;而是依赖于…

【超图 SuperMap3D】【基础API使用示例】52、超图SuperMap3D - 绘制点|线|多边形面的缓冲区

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 绘制缓冲区主要依赖[turfjs](https://turfjs.org/docs/#buffer) 先根据点线面的数据turfjs计算得到缓冲区的坐标数据&#xff0c;再行绘制效果 完整代…

docker访问宿主机的localhost

前言 在我们使用docker的时候我们会发现访问宿主机的ip的地址是一件比较麻烦的事情&#xff0c;因为宿主机如果处于不同的网段中他的ip地址是在不断的改变之中&#xff0c;那么如何访问宿主机的本地地址localhost成为了一件比较麻烦的事情&#xff0c;本文就介绍一种最简单访问…

JVM篇详细分析

JVM总体图 程序计数器&#xff1a; 线程私有的&#xff0c;每个线程一份&#xff0c;内部保存字节码的行号&#xff0c;用于记录正在执行字节码指令的地址。&#xff08;可通过javap -v XX.class命令查看&#xff09; java堆&#xff1a; 线程共享的区域&#xff0c;用来保存对…

【文献分享】WimPyDD 程序:用于计算 WIMP 直接检测信号的面向对象的 Python 代码

题目&#xff1a;WimPyDD: An object–oriented Python code for the calculation of WIMP direct detection signals 链接&#xff1a;DOI: 10.1016/j.cpc.2022.108342 Program Title: WimPyDD (first release: v1.6.1) CPC Library link to program files: https://doi.…