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

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

数据可视化-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.mfbz.cn/a/487035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 学习日记(1)---初识JavaScript

初识JavaScript 文章目录 初识JavaScript一、JavaScript 是什么?二、java 和JavaScript 的关系三、JavaScript 的组成四、JS的基本输入输出 ---> 单行注释五、js变量基本概念六、js基本数据类型七、js转义字符八、js类型转换九、运算符 END! 一、JavaScript 是什么? 我们…

FDGaussian:又快又好的三维重建方案 | Gaussian Splatting和扩散模型超强联合

项目地址&#xff1a;https://qjfeng.net/FDGaussian/ 文章链接&#xff1a;https://arxiv.org/pdf/2403.10242 本文介绍了一种名为FDGaussian的新型两阶段框架&#xff0c;用于单张图像的三维重建。最近的方法通常利用预先训练好的二维扩散模型从输入图像生成可能的新视图&…

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

RAG笔记:常见问题以及解决方法

1 内容缺失 知识库中缺少必要的上下文信息。当知识库没有包含正确答案时&#xff0c;RAG 系统可能会给出一个貌似合理但实际上错误的回答&#xff0c;而不是明确表示它不知道答案。 1.1 解决方法 1.1.1 设置阈值 在回答问题前先设定一个质量标准。如果召回内容达不到标准或…

大数据Hadoop生态圈体系视频课程

课程介绍 熟悉大数据概念&#xff0c;明确大数据职位都有哪些&#xff1b;熟悉Hadoop生态系统都有哪些组件&#xff1b;学习Hadoop生态环境架构&#xff0c;了解分布式集群优势&#xff1b;动手操作Hbase的例子&#xff0c;成功部署伪分布式集群&#xff1b;动手Hadoop安装和配…

真假“长文本”,国产大模型混战

文&#xff5c;郝 鑫 Kimi有多火爆&#xff1f;凭一己之力搅乱A股和大模型圈。 Kimi概念股连日引爆资本市场&#xff0c;多个概念股随之涨停。在一片看好的态势中&#xff0c;谁都想来沾个边&#xff0c;据光锥智能不完全统计&#xff0c;目前&#xff0c;至少有包括读客…

(二)BSQ,BIL,BIP存储格式的相互转换算法

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 GDAL(release-1928-x64-gdal-3-5-2-mapserver-8-0-0) 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存…

【中间件】docker数据卷

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 1.数据卷&#xff08;容器数据管理&#xff09; 修改nginx的html页面时&#xff0c;需要进入nginx内部。并且因为内部没有编辑器&#xff0c;修改…

手把手教集成环信新版UIKit组件,快速构建Android应用

前言 环信新版UIKit已重磅发布&#xff01;目前包含单群聊UIKit、聊天室ChatroomUIKit&#xff0c;本文详细讲解Android端单群聊UIKit的集成教程。 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库&#xff0c;提供各种组件实现会话列表、聊天界…

网络编程(Internet)

网络编程三要素 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;可以进行数据传输。 IP地址 要想让网络中的计算机能够互相通信&#xff0c;必须为每台计算机指定一个标识号&#xff0c;通过这个标识号来指定要接收数据的计算机和识别发送的计算机&#xf…

【超图 SuperMap3D】【基础API使用示例】54、超图SuperMap3D -鼠标左键拖拽绘制圆

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 通过左键按下拖拽的方式在地图上进行贴地的圆绘制 完整代码拷贝直接本地运行即可查看效果效果 核心代码 // 绘制圆形 function startDrawCircleHand…

探究橡胶手套与乳胶手套的区别及选择指南

在探寻手部防护的世界里&#xff0c;橡胶手套与乳胶手套各自闪耀着独特的光芒。然而&#xff0c;对于许多人来说&#xff0c;这两者之间的细微差异仍然笼罩在一层迷雾之中。本文将如同一盏明灯&#xff0c;照亮这片迷雾&#xff0c;为您提供一份详尽的选择指南。 首先&#xff…

高性价比 惠海MOS管选型推荐 30V60V100V150V NMOS管和PMOS管

mos管选型建议&#xff1a; 需要抗电流冲击的&#xff0c;普通逻辑开关或者工作频率很低比如50kHZ以内的&#xff0c;电流非常大的情况比如实际工作6A以上的话一般建议选择平面mos管。6A以内的应用&#xff0c;大电流沟槽型mos管即可。 需要高频开关&#xff0c;比如500kHZ以…

2024/3/23打卡数组分割(第14届蓝桥杯)——二项式定理,快速幂

目录 题目 思路 代码 题目 思路 分析该题&#xff0c;要将集合 划分成两个子集 &#xff0c;且两个子集的和都是偶数。 可知&#xff1a;偶数 偶数 偶数&#xff1b;偶数 奇数 奇数&#xff1b;奇数 奇数 偶数&#xff1b; 分析可得&#xff1a;如果该集合的和为奇…

AtCoder Regular Contest 133 B - Dividing Subsequence 复杂版LIS最长上升子序列

B - Dividing Subsequence 题意&#xff1a; 数组a和数组b&#xff0c;找出最长公共子序列&#xff0c;使得每个b[ i ] 都是 a[ i ]的倍数。 思路&#xff1a; AtCoder Regular Contest 133 B(最长上升子序列) C(思维) - 知乎 这种题应把问题转化&#xff0c;把 要找的 和 …

父类子类构造方法调用示例

父类写无参构造&#xff0c;子类不写构造&#xff0c;实例化子类&#xff0c;会同时调用父类构造方法 public class Father {private String name;private int age;public Father() {System.out.println("父类无参构造");}} public class Son extends Father {priva…

prometheus监控oracle

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

element-ui实现各种证件照上传预览下载组件封装,图片上传回显及长宽自定义功能单个图片上传功能附带源码

element-ui实现证件照上传预览下载组件封装 效果&#xff1a; 参数说明 我只写了两个参数&#xff0c;后续有需求再对其组件进行丰富~ 参数说明fileListProp用来存储上传后后端返回的图片UR了uploadUrl图片上传返回的URL后端接口地址widthProp图片上传框的宽度heightProp图片…

人脸聚类原理和算法解释

人脸聚类是指将大量人脸图像根据它们的相似性分组到不同的群集中的过程。人脸聚类通常利用人脸的特征向量表示来度量人脸之间的相似性&#xff0c;并将相似的人脸图像聚集在一起。 以下是人脸聚类的一般原理&#xff1a; 人脸特征提取&#xff1a;对每张人脸图像提取特征向量。…

FPGA结构与片上资源

文章目录 0.总览1.可配置逻辑块CLB1.1 6输入查找表&#xff08;LUT6&#xff09;1.2 选择器&#xff08;MUX&#xff09;1.3 进位链&#xff08;Carry Chain&#xff09;1.4 触发器&#xff08;Flip-Flop&#xff09; 2.可编程I/O单元2.1 I/O物理级2.2 I/O逻辑级 3.布线资源4.其…