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

news2024/10/1 14:54:53

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

今天的文章,会带着大家学习ECharts特殊图标中的气泡图与词云图,教给大家如何设置它们,运用它们,希望你能在本篇文章中有所收获。

目录

一、知识回顾

二、气泡图

三、词云图

拓展-气泡图词云图关键词

1.气泡图

2.词云图 


一、知识回顾

 涟漪效果的设置,我们需要用到effctType: 'ripple',并且为了美观,要添加很多的配置项:

但是最主要的还是我们的effctType: 'ripple'与rippleEffect配置项

甚至我们可以将涟漪插入图片,达到图片形状的涟漪效果。

而指针动态则需要的就有点复杂了,但牢记下面这两张图,就没问题

现在,开始今天的学习吧

二、气泡图

在气泡图中,涉及的数据通常会很多,很杂乱,在没有硬要求数据的情况下,作为正在学习的我们可以使用随机生产函数来生成这些数值。

       <!-- 定义一个生成随机数的函数 -->  
        function random(){   
        var r=Math.round(Math.random()*300);//从0到300随机取整
        return (r*(1%2==0?1:-1));//偶数返回正值,负数返回值乘以-1
    }
 
    function randomDataArray(){//定义一个生成随机数据数组的函数
        var d=[];
        var len=100;
        while (len--){
        d.push([random(), random(),Math.abs(random()),]);//循环100次,每次向数组d中添加一个包含三个随机数的数组,第三个数取绝对值
    }
return d;
    }

通过这样的方式来创建并返回我们的随机生成数值的函数与值 

<!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"));
        <!-- 定义一个生成随机数的函数 -->  
        function random(){   
        var r=Math.round(Math.random()*300);//从0到300随机取整
        return (r*(1%2==0?1:-1));//偶数返回正值,负数返回值乘以-1
    }
 
    function randomDataArray(){//定义一个生成随机数据数组的函数
        var d=[];
        var len=100;
        while (len--){
        d.push([random(), random(),Math.abs(random()),]);//循环100次,每次向数组d中添加一个包含三个随机数的数组,第三个数取绝对值
    }
return d;
    }
        var option = {
            color:['green', 'darkblue','red'], //气泡的颜色系列
            title:{//图表标题
            x:40, text:'标准气泡图示例',subtext:"随机生成"
            },
            tooltip:{//详情提示框
            trigger:'axis', showDelay:0,
            axisPointer:{
            show: true,  type:'cross',
            lineStyle:{ type:'dashed', width:1}
            }
        },
            legend:{x:240,data:['bubble1','bubble2']},//图例
            toolbox:{//工具箱
            show:true,  x:450,
            feature:{
            mark:{show:true}, dataZoom:{show:true},//设置工具箱的功能:标记、数据区域缩放
            dataView:{show:true, readOnly:false},
            restore:{show:true},saveAsImage:{show:true}
            }
        },
            xAxis:[{type:'value',splitNumber:4, scale:true}],// 设置X轴的类型、分割段数和是否使用坐标轴尺度
            yAxis:[{type:'value',splitNumber:4.,scale:true}],// 设置y轴的类型、分割段数和是否使用坐标轴尺度
            series:[ //数据系列
            {//数据系列中的第1类气泡 bubblel
            name:'bubble1', type:'scatter', symbol:'circle',//设置数据系列的名称、类型、形状
            symbolSize:function(value){return Math.round(value[2]/5);},  // 设置气泡大小的计算函数 
            data:randomDataArray()
            },
            {
            name:'bubble2',type:'scatter',symbol:'arrow',
            symbolSize:function(value){return Math.round(value[2]/5);},
            data:randomDataArray()
            }]
        };
        myChart.setOption(option);
    </script>
</body>

</html>

在我们的代码中,我定义了一个bubble1,一个bubble2,它们的symbol分别是circle与arrow,也就是圆形和三角。这样就会导致它们的气泡形状不同

现在,运行一下我们的代码看看效果

 

同时,在我们的工具箱中,首次使用到了我们的 mark:{show:true}, dataZoom:{show:true},它的作用就是实现我们的一个缩放功能

使用缩放功能能更清晰看到我们一块区域的气泡情况。

快去试试吧 

三、词云图

在我们的ECharts4.X之后,官网不再提供词云图的功能,也没有相对应的API,所以再进行词云图的编写时,我们要先引入我们的echarts.js,最后引入echarts.wordcloud.min.js

分别用到我们的

<script type="text/javascript" src = "http://echarts.baidu.com/build/dist/echarts.js"></script>

 以及

 require(
        [
            'echarts',
            'echarts/chart/wordCloud',
        ],

现在我们来写一个完整的代码

 可以看到我们的词云图出现了

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <title>词云图</title>  
 <!-- 引入ECharts文件 --> 
    <script type="text/javascript" src = "http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript" src="/js/echarts.js"></script>  
</head>  
<body>  
    <div id="main" style="width: 80%;height: 400px;border: 1px solid black"></div>  
</body>    
    <script type="text/javascript">  
 // 使用模块化加载方式
    require.config({
        paths:{echarts:'http://echarts.baidu.com/build/dist'}
    })
    require(
        [
            'echarts',
            'echarts/chart/wordCloud',
        ],
        function(ec){
            var myChart = ec.init(document.getElementById('main'));
            function createRandomItemStyle(){//创建随机颜色
                return{
                    normal:{
                        color:'rgb('+[
                            Math.round(Math.random()*255),
                            Math.round(Math.random()*255),
                            Math.round(Math.random()*255)
                    ].join(',')+')'
                    }
                };
            }
            option = {  
                title:{
                    text:'哈哈哈哈哈哈',
                    link:'',
                },
                backgroundColor:'rgba(128,128,128,0.1)',
                tooltip:{show:true},
                series:[{
                    name:'p1',
                    type:'wordCloud',
                    sizeRange:[100,50000],//最大最小值
                    size:['95%','95%'],//词云图大小
                    textRotation:[0,45,90,135,-45,-90],//词的倾斜角度
                    textPadding:4,
                    autoSize:{enable:true,minSize:2},
                    data:[//词云名称,词云大小,颜色
                        {name:'数据可视化',value:16884,itemStyle:{normal:{color:'red'}}},
                        {name:'数据分析',value:8844,itemStyle:createRandomItemStyle()},
                        {name:'数据收集',value:16644,itemStyle:createRandomItemStyle()},
                        {name:'数据清洗',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'数据结构',value:14844,itemStyle:createRandomItemStyle()},
                        {name:'数据价值',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'java',value:1688,itemStyle:createRandomItemStyle()},
                        {name:'c',value:15552,itemStyle:createRandomItemStyle()},
                        {name:'C++',value:8848,itemStyle:createRandomItemStyle()},
                        {name:'python',value:6677,itemStyle:createRandomItemStyle()},
                        {name:'mysql',value:5240,itemStyle:createRandomItemStyle()},
                        {name:'Sql',value:12244,itemStyle:createRandomItemStyle()},
                        {name:'R',value:7749,itemStyle:createRandomItemStyle()},
                        {name:'数据价值',value:2244,itemStyle:createRandomItemStyle()},
                        {name:'ECharts',value:11044,itemStyle:createRandomItemStyle()},
                        {name:'html',value:6749,itemStyle:createRandomItemStyle()},
                        {name:'数据',value:50000,itemStyle:createRandomItemStyle()},
                        {name:'spark',value:5349,itemStyle:createRandomItemStyle()},
                        {name:'scala',value:7789,itemStyle:createRandomItemStyle()},
                        {name:'hadoop',value:6189,itemStyle:createRandomItemStyle()},
                        {name:'hive',value:8782,itemStyle:createRandomItemStyle()},
                        {name:'',value:10049,itemStyle:createRandomItemStyle()},
                    ]
                }]
       };
       myChart.setOption(option);
     }
);
    </script>

因为相较于前面有些复杂,我来讲讲代码的意思

在我们的头中,我们引入了引入ECharts文件,但并没有选择本地引入,运用到了一个新的方法:

 

再就是引入我们的一个wordCloud模块(ECharts中用于产生词云图的模块)

接着就是创建我们的一个随机颜色函数,它会使我们的词云的词的颜色不用手动设置,并且每次打开它的效果都是不一样的,来看看对比

 可以看到两次生成的不一

 最后一个重点就是词云的大小不要超过你设定的值

我设定的最小100最大50000,那么data中的value就不能超过或者低于这个值,否则就会导致这个词不显示。

拓展-气泡图词云图关键词

1.气泡图

关键词/配置项说明示例用法
series.type指定图表的类型,对于气泡图应为 'bubble'series: [{ type: 'bubble' }]
series.data包含气泡图的数据项,每个数据项是一个数组或对象。data: [{name: '关键词1', value: [x值, y值, 气泡大小]}]
series.data.name数据项的名称,通常用于tooltip显示。name: '关键词1'
series.data.value数据项的值,一个包含三个元素的数组,分别对应x轴、y轴和气泡大小。value: [20, 30, 40]
xAxisx轴的配置项,用于设置x轴的类型、名称等。xAxis: { type: 'value' }
yAxisy轴的配置项,用于设置y轴的类型、名称、数据等。yAxis: { type: 'category', data: ['关键词1', '关键词2', ...] }
tooltip提示框组件,用于设置鼠标悬浮时的提示信息。tooltip: { trigger: 'item', formatter: '{a} <br/>{b} : {c}' }
title标题组件,用于设置图表的标题。title: { text: '气泡图示例' }
legend图例组件,用于设置图例的数据和样式。legend: { data: ['系列名称'] }
visualMap视觉映射组件,用于将数据的视觉元素映射到视觉表现。visualMap: { min: 0, max: 100 }

2.词云图 

关键词/配置项说明示例用法
series.type指定图表的类型为词云图,通常为 'wordCloud'series: [{ type: 'wordCloud' }]
series.data包含词云图的数据项,每个数据项是一个对象,包含关键词和权重。data: [{name: '关键词1', value: 权重1}, {name: '关键词2', value: 权重2}, ...]
series.textStyle设置词云图中文字的样式,如字体、颜色等。textStyle: { normal: { color: 'function(params) { return params.value[2] }' } }
series.gridSize设置词云图网格的大小。gridSize: 16
series.rotationRange设置词云图中文字的旋转范围。rotationRange: [0, 90]
series.shape设置词云图的形状,可以是 'circle' 或 'cardioid' 等。shape: 'circle'
series.sizeRange设置词云图中文字的大小范围。sizeRange: [10, 50]
tooltip提示框组件,用于设置鼠标悬浮时的提示信息。tooltip: { trigger: 'item', formatter: '{a} <br/>{b} : {c}' }

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

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

相关文章

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二)

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数&#xff08;二&#xff09; 说明记录 说明 简单介绍罗德里格斯变换以及OpenCV中的实现函数 记录

Machine Learning机器学习之向量机(Support Vector Machine,SVM)

目录 前言 算法提出背景&#xff1a; 核心思想&#xff1a; 原理&#xff1a; 应用领域&#xff1a; 一、支持向量机分类&#xff08;主要变体&#xff09; 二、构建常见的支持向量机模型 基于Python 中的 Scikit-learn 库构建线性支持向量机&#xff08;SVM&#xff09; 三、向…

蓝桥杯刷题之路径之谜

题目来源 路径之谜 不愧是国赛的题目 题意 题目中会给你两个数组&#xff0c;我这里是分别用row和col来表示 每走一步&#xff0c;往左边和上边射一箭&#xff0c;走到终点的时候row数组和col数组中的值必须全部等于0这个注意哈&#xff0c;看题目看了半天&#xff0c;因为…

【GPU系列】选择最适合的 CUDA 版本以提高系统性能

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NVIDIA 发布 Project GR00T 人形机器人基础模型和 Isaac 机器人平台重大更新

系列文章目录 前言 Isaac 机器人平台现可为开发者提供全新的机器人训练仿真器、Jetson Thor 机器人计算机、生成式 AI 基础模型和由 CUDA 加速的感知和操作库。 Project GR00T 是一种多模态人形机器人通用基础模型&#xff0c;作为机器人的大脑&#xff0c;使它们能够学习技能…

Android客户端自动化UI自动化airtest从0到1搭建macos+demo演示

iOS客户端自动化UI自动化airtest从0到1搭建macosdemo演示-CSDN博客 一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 &#xff5c; macOS &#xff5c; jdk1.8 &#xff5c; 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads …

【Java程序设计】【C00390】基于(JavaWeb)Springboot的校园疫情防控管理系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园疫情防控管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开…

前端Web移动端学习day05

移动 Web 第五天 响应式布局方案 媒体查询Bootstrap框架 响应式网页指的是一套代码适配多端&#xff0c;一套代码适配各种大小的屏幕。 共有两种方案可以实现响应式网页&#xff0c;一种是媒体查询&#xff0c;另一种是使用bootstrap框架。 01-媒体查询 基本写法 max-wid…

vue3+Vite+TS项目,配置ESlint和Prettier

创建vue3项目 实操过的有两种方式 1.vue脚手架2.vite&#xff08;推荐&#xff0c;也是尤大大团队研发&#xff09; 具体怎么新建一个vue3项目就不多讲了&#xff0c;可以按照官方文档来 创建后的文件目录长这样 多提一句&#xff0c;vite也会随着时间不断迭代&#xff0c;后…

【C++入门】 初见,单推,与C++的第一次约会

关注小庄 顿顿解馋(ᕑᗢᓫ∗)˒ 引言&#xff1a;本篇博客我们开始与C的第一次约会&#xff0c;C是兼容c的&#xff0c;本篇博客我们将了解到C关键字有哪些&#xff0c;C命名空间&#xff0c;C输入与输出和缺省参数的内容&#xff0c;请放心食用 ~ 文章目录 一 &#x1f3e0; C…

github配置ssh

生成公钥 在电脑用户的目录下打开终端执行 ssh-keygen -t rsa: 执行完不要关 配置文件 看看用户的目录里 .ssh 目录&#xff1a; Host github.comHostname ssh.github.comPort 443配置公钥 复制 id_rsa.pub 文件里的内容 粘贴到 github上 连接密钥 回到刚才的终端…

【42 可视化大屏 | 某瓣电影Top250数据分析可视化大屏】

文章目录 &#x1f3f3;️‍&#x1f308; 1 普版大屏&#x1f3f3;️‍&#x1f308;2 Flask版大屏&#x1f3f3;️‍&#x1f308;3 FlaskMysql版大屏&#x1f3f3;️‍&#x1f308; 4. 可视化项目源码数据 大家好&#xff0c;我是 &#x1f449;【Python当打之年(点击跳转)…

学透Spring Boot — 创建一个简单Web应用

从今天开始&#xff0c;我们将开始学习一个新的系列&#xff0c;那就是在项目中用得非常广泛的一个框架 —— Spring Boot&#xff0c;我们会循序渐进地介绍 Spring Boot 的方方面面&#xff0c;包括理论和实战&#xff0c;也会介绍和Spring Boot一些热点面试题。 概论 本文是…

基于Rflysim平台的无人机拦截三维比例导引算法仿真

【后厂村路钢铁侠出品】 一、Rflysim简介 RflySim是一套专为科研和教育打造的Pixhawk /PX4 和MATLAB/Simulink生态系统或工具链&#xff0c;采用基于模型设计&#xff08;Model-Based Design&#xff0c; MBD&#xff09;的思想&#xff0c;可用于无人系统的控制和安全测试。…

社交革命:Facebook如何改变我们的生活

引言 在数字化时代的浪潮中&#xff0c;社交媒体平台成为了人们日常生活不可或缺的一部分&#xff0c;而Facebook作为其中的巨头&#xff0c;已经深刻地改变了我们的生活方式和社交模式。本文将探讨Facebook在社交领域的影响力&#xff0c;以及它是如何改变了我们的生活。 1. …

SQLite数据库浏览器sqlite-web

什么是 sqlite-web &#xff1f; sqlite-web是一个用 Python 编写的基于 Web 的 SQLite 数据库浏览器。 软件特点&#xff1a; 可与您现有的 SQLite 数据库配合使用&#xff0c;也可用于创建新数据库。添加或删除&#xff1a; 表格列&#xff08;支持旧版本的 SQLite&#xff…

春秋云境CVE-2023-1313

简介 cockpit在2.4.1版本之前存在任意文件上传漏洞PS&#xff1a;通过在浏览器中打开/install来运行安装 正文 来到靶场&#xff0c;首先进行弱口令爆破&#xff0c;发现没用&#xff0c;那么只好老老实实的看靶场提示 先来访问/install 访问后就可以进行登录了&#xff0c…

阿里云实时计算Flink的产品化思考与实践【上】

摘要&#xff1a;本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。内容主要为以下五部分&#xff1a; 阿里云实时计算 Flink 简介产品化思考产品化实践SQL 产品化思考及实践展望 该主题由黄鹏程和陈婧敏共同完成&#xff0c;前半程…

AJAX(二):axios 和 fetch函数发送AJAX请求、同源策略、 jsonp、CORS

一、各种发送AJAX请求 jquery基于回调函数&#xff0c;axios基于promise 1.axios发送AJAX请求!!! axios (v1.5.0) - Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 Node.js 中。 | BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 服务器&#xff1a; app.…

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;的缩写。它是软件开发中的一种流程和方法论&#xff0c;旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…