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

在之前的文章中,我们学习了如何在ECharts中编写气泡图,词云图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

数据可视化-ECharts Html项目实战(8)-CSDN博客文章浏览阅读1.4k次,点赞45次,收藏33次。今天的文章,会正式进入ECharts气泡图与词云图的学习。希望我的文章能帮助到正在学习的你,也欢迎各位来本篇文章下一起交流学习,共同进步。https://blog.csdn.net/qq_49513817/article/details/137091165?spm=1001.2014.3001.5501今天的文章,会带着大家深入学习ECharts特殊图表中的雷达图,实现特殊效果的插入运用,函数的插入,以及多图表雷达图,希望你能在本篇文章中有所收获,如果你绘制的雷达图不好看,那么今天的文章一定会有所收获。

目录

一、知识回顾

二、雷达图

三、添加视觉映射组件的雷达图

四、多图表雷达图

拓展-视觉组件用法

一、知识回顾

在之前的文章中,我们学习了气泡图词云图,而它们的设置各有难点,例如气泡图的大量数据随机需要用到的函数设置,词云图的引入wordCloud模块

我们会使用到这样一组函数来进行我们的随机数生成,当然你可以根据这个基础写出任何你需要的函数,这并不是唯一的。

 

且虽然是写气泡图,这里的类型依旧设置成之前的scatter也就是散点图。

 这里的作用就是引入我们写词云图的一个模块,且类型(type)要设置成wordCloud。

前面的知识复习完了,我们开启今天的学习吧

二、雷达图

首先,我们先要知道雷达图主要用于展示多个变量或指标之间的相对关系和比较,这样在自己写图表的过程中就能根据需求选择我们的所用的图表。

其次,雷达图和饼图,圆环图等大部分圆形图一样,基本不用考虑x轴y轴的配置,也无需在工具箱中添加过多的转换图表类型的按钮,因为它用不上。雷达图的数据通常是一个包含多个对象的数组,每个对象代表一个数据系列,而饼图的数据结构通常是一个数组,数组的每个元素是一个对象。

最后,在雷达图的配置中,我们需要定义radar属性来设置雷达图的形状、大小等,并设置series中的type'radar'

现在,开始雷达图的编写吧:

<!DOCTYPE html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="echarts.min.js"></script>
</head>
<body><div id="main" style="width: 750px;height: 550px;"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));var option={title:{text:'销售能力对比分析',textStyle:{color:'red'},left:15,top:0},tooltip: { // 配置详情提示框组件confine: true, // 设置是否将tooltip框限制在图表的区域内enterable: true, // 设置鼠标是否可以移动到tooltip区域内formatter: "{a} <br/>{b} : {c} "},legend:{type:"scroll",data:['王斌','刘倩','袁波'],left:570,top:"bottom", },radar: {  center:['50%','56%'],radius:225,// 雷达图指示器  indicator: [  { name: '销售', max: 100 },  { name: '沟通', max: 100 },  { name: '服务', max: 100 },  { name: '协作', max: 100 },  { name: '培训', max: 100 },  ],  name: {  textStyle: {  color: '#fff',  backgroundColor: '#999',  borderRadius: 3,  padding: [3, 5]  }  }  },  series: [  {  itemStyle: { // 设置折线拐点标志的样式emphasis: {lineStyle: {width: 5},} },name: '代表数据',  type: 'radar',  data : [  {  value : [87.50, 87.50, 90.00, 91.25, 85.00],  name : '王斌'  },  {  value :  [90.00, 88.75, 85.00, 87.50, 88.75], name : '刘倩'  },  {  value : [92.50, 91.25, 88.75, 92.50, 91.25],  name : '袁波'  },  ]  }  ]  
};  myChart.setOption(option);</script> 
</body>
</html>

 在代码中radius,是设置我们雷达图的大小

itemStyle配置项,它在雷达图中,可以用于调整数据点的颜色、大小等属性。它里面包括的

emphasis: {lineStyle: {width: 5},} 

就是我们的移动线条处,触发高亮效果。

数据类型也和之前不同,现在我们需要的是一个包含多个对象的数组。

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

三、添加视觉映射组件的雷达图

添加视觉组件,我们需要用到visualMap配置项(visualMap 是 ECharts(一个使用 JavaScript 实现的开源可视化库)中的一个重要组件,主要用于进行数据的视觉映射。简单来说,它将数据映射到视觉元素上,通过改变这些视觉元素的表现(如颜色、大小、透明度等),使得数据的分布、大小、趋势等特征能够更直观地展现给用户。)

现在,我们写一个新的图表,并把visualMap运用在我们的代码中,将它变得更直观,好看:

       <!DOCTYPE html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="echarts.min.js"></script></head><body><div id="main" style="width: 600px;height: 400px;"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));option = {backgroundColor:'rgba(204,204,204,0.7)',title: {text: '浏览器占比',subtext: 'Big Data',top: 20,left: 30                                               },tooltip: {trigger: 'item'},legend: {type: 'scroll',bottom: 10,data: (function () {var list = [];for (var i = 1; i <= 28; i++) {list.push(i + 2000 + '');}return list;})()},visualMap: {top: 'middle',right: 10,color: ['red', 'yellow'],calculable: true},radar: {indicator: [{ text: 'IE8-', max: 400 },{ text: 'IE9+', max: 400 },{ text: 'Safari', max: 400 },{ text: 'Firefox', max: 400 },{ text: 'Chrome', max: 400 }]},series: (function () {var series = [];for (var i = 1; i <= 28; i++) {series.push({type: 'radar',symbol: 'none',lineStyle: {width: 1},emphasis: {areaStyle: {color: 'rgba(0,250,0,0.3)'}},data: [{value: [(40 - i) * 10,(38 - i) * 4 + 60,i * 5 + 10,i * 9,(i * i) / 2 ,],name: i + 2000 + ''}]});}return series;})()};myChart.setOption(option);</script> 
</body>
</html>

在这个表中 ,我添加了

            legend: {type: 'scroll',bottom: 10,data: (function () {var list = [];for (var i = 1; i <= 28; i++) {list.push(i + 2000 + '');}return list;})()},

它 的作用是动态生成图例数据,最终它会输出我们2001到2028的图例数据,当我们有大量且连续的数字图例时(例如年月日),就可以使用这种方法添加图例。

以及

 visualMap: { <!-- 定义视觉映射组件 -->  top: 'middle', <!-- 设置视觉映射组件距离容器顶部的距离为中间位置 -->  right: 10, <!-- 设置视觉映射组件距离容器右侧的距离为 10 像素 -->  color: ['red', 'yellow'], <!-- 设置视觉映射的颜色范围为从红色到黄色 -->  calculable: true <!-- 允许用户手动调整颜色映射的范围 -->  }, 

让我们的数据更加好看。

现在,运行代码,看看效果:

 

可以很明显看到我们的映射效果,如果将visualMap配置项删掉,那么得到的图表就会像下面这样,让人一眼看去毫无波澜。

 最后,如果能将视觉组件在合适的时候添加到自己的图表中,那么对图表带来的的美观提升是巨大的。

四、多图表雷达图

在一个盒子中放多个图表,我们并不陌生,只需要设置好我们每个图表的大小,位置即可。

现在,编写代码:

<!DOCTYPE html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="echarts.min.js"></script>
</head>
<body><div id="main" style="width: 750px;height: 550px;"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));var option={title:{text:'多雷达图',textStyle:{color:'red'},left:15,top:0},tooltip: { // 配置详情提示框组件confine: true, // 设置是否将tooltip框限制在图表的区域内enterable: true, // 设置鼠标是否可以移动到tooltip区域内formatter: "{a} <br/>{b} : {c} "},legend:{type:"scroll",data:['王斌','刘倩','袁波','降水量','蒸发量'],left:400,top:"bottom", },radar: [{  nameGap: 3,shape:'polygon',       // 雷达图指示器  indicator: [  { name: '销售', max: 100 },  { name: '沟通', max: 100 },  { name: '服务', max: 100 },  { name: '协作', max: 100 },  { name: '培训', max: 100 },  ],  name: {  textStyle: {  color: '#fff',  backgroundColor: '#999',  borderRadius: 3,  padding: [3, 5]  },  },  center:['40%','30%'],radius:135,}, {  name:'图2',nameGap: 3,shape:'polygon',       // 雷达图指示器  indicator: (function(){var res = [];for (var i = 1;i  <= 12;i++){res.push({text:i+'月',max:100});}return res;})(),name: {  textStyle: {  color: '#fff',  backgroundColor: '#999',  borderRadius: 3,  padding: [3, 5]  },  } ,  center:['40%','78%'],radius:100,}, 
], series: [  {  name:'图1',itemStyle: { // 设置折线拐点标志的样式emphasis: {lineStyle: {width: 5},} },type: 'radar',  data : [  {  value : [87.50, 87.50, 90.00, 91.25, 85.00],  name : '王斌'  },  {  value :  [90.00, 88.75, 85.00, 87.50, 88.75], name : '刘倩'  },  {  value : [92.50, 91.25, 88.75, 92.50, 91.25],  name : '袁波'  },  ]  },{radarIndex: 1, type:'radar',tooltip:{trigger:'item'},itemStyle:{normal:{areaStyle:{type:'default'}}},data:[{name:'降水量',value:[5,6,9,56,69,73,77,88,50,22,7,5]},{name:'蒸发量',value:[3,5,8,34,45,77,68,65,36,23,7,4]},]}  ]  
};  myChart.setOption(option);</script> 
</body>
</html>

多图表只需考虑我们的center位置radius大小,不要两表重叠 ,且图表配置项与数据单独编写最后使用radarIndex将图表数据对应即可。

radarIndex通常用在series的data数组中,每个数据项可以有一个radarIndex属性来指定它属于哪个雷达图。例如,在一个包含两个雷达图的图表中,你可以使用radarIndex:0来指定一个数据项属于第一个雷达图,radarIndex:1来指定它属于第二个雷达图。

现在看看图表效果

两个表上下排列在一起,没有出现重叠等冲突

今天的学习完成,快去练习吧~ 

拓展-视觉组件用法

配置项类型说明
typeString视觉映射类型,可选值为 'continuous'(连续型)和 'piecewise'(分段型)。连续型表示数据呈连续分布,可以使用渐变的颜色来表示不同数值之间的差异;分段型则将数据分成若干个区间,每个区间使用不同的颜色表示。
minNumber数据范围的最小值。对于连续型visualMap,该值定义了颜色映射的起始点。
maxNumber数据范围的最大值。对于连续型visualMap,该值定义了颜色映射的结束点。
inRangeObject在范围内的视觉映射配置。对于连续型visualMap,可以定义颜色渐变,如 { color: ['blue', 'red'] } 表示从蓝色渐变到红色。
textString/Array视觉映射的标签。可以定义文本标签,也可以定义多个标签用于分段型visualMap。
inverseBoolean是否反转颜色的渐变方向。默认为false,即颜色从最小值到最大值正常渐变;设置为true时,颜色会从最大值到最小值渐变。
rangeArray对于连续型visualMap,可以定义自定义的数据范围,如 [0, 100]
calculableBoolean是否显示拖拽条,允许用户手动调整数据范围。
orientStringvisualMap组件的布局朝向,可选值为'horizontal'(水平)和'vertical'(垂直)。
left/right/top/bottom/width/heightNumber/String这些属性用于设置visualMap组件在图表中的位置和大小。例如,left: 'center' 将组件水平居中。
splitNumberNumber对于分段型visualMap,该值定义了区间的数量。
itemWidth/itemHeightNumber对于分段型visualMap,定义了每个区间的宽度或高度。
itemStyleObject用于定义区间的样式,如颜色、边框等。

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

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

相关文章

【核心复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略

目录 主要内容 内容详情 1.问题引出 2.可控负荷 3.网络拓扑约束 4.算法流程 结果一览 1.原文结果 2.程序运行结果 下载链接 主要内容 该模型复现文章《同时考虑考虑孤岛与重构的配电网故障恢复运行策略》&#xff0c;以IEEE33配电网为分析对象&#xff0c;…

算法2.7:排序算法之间的比较

排序算法间的比较 比较元素: 1,平均时间复杂度 2,最好情况 3,最坏情况 4,空间复杂度 5,排序方式 6,稳定性 部分术语解释: 1,稳定:如果a本来在b前面,ab,排序之后a仍然在b前面 2,不稳定:即!第一条 3,内排序:所有排序操作都在内存中完成 4,外排序:需要借助外界的存储空…

js逆向之实例某宝热卖(MD5)爬虫

目录 正常写 反爬 逆向分析 关键字搜索 打断点&分析代码 得出 sign 的由来 确定加密方式 写加密函数了 补全代码 免责声明:本文仅供技术交流学习,请勿用于其它违法行为. 正常写 还是老规矩,正常写代码,该带的都带上,我这种方法发现数据格式不完整. 应该后面也是大…

利用优质样本提示,优化ChatGPT Prompt的编写技巧

在当下这个数字化高速发展的时代&#xff0c;大型语言模型&#xff08;LLM&#xff09;如ChatGPT等&#xff0c;已逐渐融入我们的日常生活与专业工作之中&#xff0c;成为不可或缺的得力助手。它们凭借强大的能力&#xff0c;不仅能回答我们的疑问&#xff0c;还能协助我们撰写…

分布式全闪占比剧增 152%,2023 年企业存储市场报告发布

近日&#xff0c;IDC 发布了 2023 年度的中国存储市场报告。根据该报告&#xff0c;在 2023 年软件定义存储的市场占比进一步扩大&#xff0c;分布式全闪的增长尤其亮眼&#xff0c;其市场份额从 2022 年的 7% 剧增到 2023 年的 17.7%&#xff0c;增长了 152%。 01 中国企业存…

Dual Relation Knowledge Distillation for Object Detection用于目标检测的双关系知识蒸馏

摘要 有两个关键点导致检测任务的蒸馏性能不佳。一是前景和背景特征严重不平衡&#xff0c;二是小对象缺乏足够的特征表示。为了解决上述问题&#xff0c;我们提出了一种新的知识蒸馏方法——双关系知识蒸馏&#xff08;DRKD&#xff09;&#xff0c;包括逐像素关系蒸馏和逐实…

微信小程序实现左滑删除

效果 实现思路 使用的是官方提供的movable-area 嵌套movable-view 1、movable-area&#xff1a;注意点&#xff0c;需要设置其高度&#xff0c;否则会出现列表内容重叠的现象。 2、由于movable-view需要向右移动&#xff0c;左滑的时候给删除控件展示的空间&#xff0c;故 mov…

HarmonyOS 应用开发之ArkData

功能介绍 ArkData &#xff08;方舟数据管理&#xff09;为开发者提供数据存储、数据管理和数据同步能力&#xff0c;比如联系人应用数据可以保存到数据库中&#xff0c;提供数据库的安全、可靠以及共享访问等管理机制&#xff0c;也支持与手表同步联系人信息。 标准化数据定义…

C++ list

文章目录 list的介绍及使用list的介绍list的构造list iterator的使用list capacitylist element accesslist modifiers list模拟实现list节点类list迭代器类list类 list深度剖析list迭代器失效list反向迭代器 list与vector对比 list的介绍及使用 list的介绍 1.list的底层是双向…

每天五分钟计算机视觉:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…

Django如何定义视图函数?FBV-CBV的使用场景

目录 1. 前言 2. FBV与CBV 2.1 FBV 2.2 CBV 2.3 两种区别 3. request参数 4. 返回值 5. 结尾 1. 前言 在Django中&#xff0c;我们通过浏览器URL发送了请求&#xff0c;请求通过路由层&#xff0c;最后匹配到相应的视图函数 在视图函数中&#xff0c;也分两种编写形式&…

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验&#xff0c;从而增强 AR 体验的真实感。 在下图中&#xff0c;右侧画面是采用深度API进行遮挡后的效果&#xff0c;与左侧图相比更加真实。 深度值 给…

node.js的模块化 与 CommonJS规范

一、node.js的模块化 (1)什么是模块化&#xff1f; 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中&#xff0c;模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块&#xff0c;将每个js文件被认为单独的一个模块&#xff1b;模块…

第十七章 Kafka

一、特性 - 高吞吐、低延迟 - 高伸缩性 - 持久性、可靠性 - 容错性 - 高并发 通过 O(1)的磁盘数据结构提供消息的持久化&#xff0c;这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。 高吞吐量&#xff1a;即使是非常普通的硬件 Kafka 也可以支持每秒数百…

深入理解数据结构——堆

前言&#xff1a; 在前面我们已经学习了数据结构的基础操作&#xff1a;顺序表和链表及其相关内容&#xff0c;今天我们来学一点有些难度的知识——数据结构中的二叉树&#xff0c;今天我们先来学习二叉树中堆的知识&#xff0c;这部分内容还是非常有意思的&#xff0c;下面我们…

Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions(IA-YOLO)

1、总体概述 基于深度学习的目标检测在常规条件的数据集可以获得不错的结果&#xff0c;但是在环境、场景、天气、照度、雾霾等自然条件的综合干扰下&#xff0c;深度学习模型的适应程度变低&#xff0c;检测结果也随之下降&#xff0c;因此研究在复杂气象条件下的目标检测方法…

【软件工程导论】——面向对象与UML(学习笔记)

&#x1f4d6; 前言&#xff1a;面向对象是以问题空间中出现的物体为中心进行模型化的一种技术。建立模型是软件工程中最常使用的技术之一。无论软件分析或软件设计&#xff0c;都需要建立模型。UML 就是OO 软件工程使用的统一建模语言。它是一种图形化的语言&#xff0c;主要用…

vue3中播放flv流视频,以及组件封装超全

实现以上功能的播放&#xff0c;只需要传入一个流的地址即可&#xff0c;当然组件也只有简单的实时播放功能 下面直接上组件 里面的flvjs通过npm i flv.js直接下载 <template><div class"player" style"position: relative;"><p style&…

linux:生产者消费者模型

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、生产者消费者模型二、基于阻塞队列的生产者消费者模型代码实现 总结 前言 本文是对于生产者消费者模型的知识总结 一、生产者消费者模型 生产者消费者模型就是…

Mac电脑Jmeter集成到Jenkins,压测多个接口并生成测试报告

Jenkins支持的JDK版本17、21&#xff0c;通过java -version查看当前JDK版本&#xff0c;确认是否匹配 打开网址https://www.jenkins.io/download 点击下载&#xff0c;选择mac版本 commend空格打开终端&#xff0c;输入安装命令brew install jenkins 安装完成后输入brew servi…