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

在之前的文章中,我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

数据可视化-ECharts Html项目实战(10)-CSDN博客文章浏览阅读775次,点赞20次,收藏16次。今天的文章,会带着大家深入学习ECharts特殊图表中的双y图以及自定义形状词云图。希望我的文章能帮助到正在学习的你,也欢迎各位来本篇文章下一起交流学习,共同进步。https://blog.csdn.net/qq_49513817/article/details/137527485今天的文章,会带着大家深入学习ECharts特殊图表中的矩形树图以及Echarts中高级功能的多图表联动。希望你能在本篇文章中有所收获。 

目录

一、知识回顾

二、矩形树图

三、多图表联动


一、知识回顾

在之前的文章中我们学习了ECharts特殊图表中的双y图以及自定义形状词云图。

双y图的配置并不复杂,只需要记住图片中这几点就行

 在配置的时,只需要将两条y轴配置项分开写,数据对应好就行,如图:

自定义形状词云图就有点复杂了

我们需要将我们所需形状的图片转化为base64格式

 只会就能编写我们的代码进行操作

现在,开始今天的学习吧 

二、矩形树图

在ECharts中编写矩形树图(Tree Graph)的配置项时,有几个关键的注意事项需要我们牢记:

  • 数据结构准备:首先,我们需要确保提供的数据结构是适合树图展示的。树图通常需要一个层级结构的数据,其中每个节点都包含其子节点的信息。我们需要确保数据格式正确,并且遵循ECharts所期望的格式。
  • 配置选项:树图的配置项非常丰富,我们需要根据具体需求进行配置。例如,我们可以设置series下的type'tree'来指定绘制树图,然后利用data字段来传入你的树形数据。同时,我们还可以配置节点的样式(如symbolSize)、标签的显示方式(如label字段下的positionfontSize等)、提示框的触发方式(如tooltip字段)等。
  • 布局与方向:树图有多种布局方式,比如水平布局和垂直布局。我们可以通过配置orient字段来指定布局方向,比如'TB'表示从上到下垂直布局,'LR'表示从左到右水平布局。

现在,分析我们的代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="js/echarts.js"></script>
</head><body><div id="main" style="width: 800px; height: 400px"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById("main"));function getLevelOption(){return[{itemStyle:{borderWidth:0,gapWidth:5}},{itemStyle:{gapWidth:1}},{colorSaturation:[0.7,0.2],itemStyle:{gapWidth:1,borderColorSaturation:0.5}}];}var option = {title: {text: '矩形树图',left:"270",top:15,textStyle:{color:'green'}},series: [{name:'全部',type:'treemap',levels:getLevelOption(),data:[{name:'陈大姐',value:52,children:[{name:'神小龙',value:17},{name:'赣小许',value:13},{name:'常小君',value:15},{name:'娄小青',value:7}]},{name:'吴二姐',value:39,children:[{name:'林慕慕',value:22},{name:'杨株洲',value:17}]},{name:'林三妹',value:38,children:[{name:'魏芷兰',value:19},{name:'高常德',value:11},{name:'桂尧尧',value:8}]},]}]};myChart.setOption(option);</script>
</body></html>

在我们的代码中,我创建了一个getLevelOption()函数。返回函数中数组里的每个元素代表一个层级的样式配置。每个层级配置对象包含itemStyle属性,用于设置节点的样式,比如边框宽度(borderWidth)和间隙宽度(gapWidth)。第三个层级配置还包含了颜色饱和度(colorSaturation)和边框颜色饱和度(borderColorSaturation)的设置,这些用于控制节点颜色的深浅 。

再将类型设置为"treemap",最后填写数据

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

 

 可以看到我们预期的矩形树图效果出现了

三、多图表联动

这里我使用童年游戏洛克王国一个宠物的数值以及登场率作为数据可视化例子为大家讲解。 

我使用了ECharts库来创建两个图表:一个饼图和一个雷达图。

  • 初始化图表
    • echarts.init():用于初始化图表实例,传入一个DOM元素作为图表的容器。
  • 饼图(myChart1)
    • 标题 (title):设置了图表的标题为“巴哈姆特天梯赛登场占比”。
    • 提示框 (tooltip):定义了当鼠标悬停在数据项上时显示的提示框内容。
    • 图例 (legend):展示了饼图的图例,包括“巴哈姆特”、“其他年费”、“精灵王”、“奉神”和“活动宠”。
    • 系列 (series):定义了饼图的数据系列,包括数据类型(pie)、半径、数据项(包括值和名称)以及高亮状态下的样式。
  • 雷达图(myChart2)
    • 颜色 (color):为雷达图的各个系列设置了颜色数组。
    • 背景色 (backgroundColor):设置了图表的背景色,这里使用了带有透明度的灰色。
    • 标题 (title):设置了雷达图的标题为“巴哈姆特数值”。
    • 提示框 (tooltip):tooltip
    • 雷达指示器 (radar.indicator):定义了雷达图的各个指示器(如“精力”、“攻击”等)及其最大值。
    • 系列 (series):定义了雷达图的数据系列,包括数据类型(radar)。

那么我们如何把他们放到一起呢?

  • 设置图表选项
    • myChart1.setOption(option1); 和 myChart2.setOption(option2);:这两行代码将之前定义的配置选项应用到各自的图表实例上。这会导致图表根据配置选项进行渲染和展示。
  • 添加自定义属性 group
    • myChart1.group = 'group1'; 和 myChart2.group = 'group1';:这里,我为两个图表实例添加了一个自定义属性 group,并将它们的值都设置为 'group1'。这本身并不会影响ECharts图表的渲染或行为,但它是一个自定义属性,用于后面的图表联动操作。
  • 连接图表
    • echarts.connect('group1');:这行代码是ECharts中实现多图表联动的关键。echarts.connect 方法用于将多个图表实例连接到一个组中,以实现它们之间的联动。当图表被连接到一个组后,用户在一个图表上的交互(如点击、鼠标悬停等)会触发该组中所有其他图表的相应事件。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="js/echarts.js"></script><style>   #main1, #main2 {  position: relative;  }  #main1::before, #main2::before {  content: "";  position: absolute;  top: 0;  left: 0;  width: 100%;  height:100%;  background-image: url('image/3.png'); /* 图片路径 */  background-size: cover; /* 根据容器大小调整图片大小 */  opacity: 0.3; /* 设置图片透明度为30% */  z-index: -1; /* 确保背景图在图表之下 */  }  </style>  
</head>
<body><div id="main1" style="width: 600px; height: 500px"></div><div id="main2" style="width: 600px; height: 500px"></div><script type="text/javascript">var myChart1 = echarts.init(document.getElementById("main1"));var option1 = {  title: {  text: '巴哈姆特天梯赛登场占比'  },  tooltip: { trigger: 'item',  formatter: '{a} <br/>{b}: {c} ({d}%)' // 格式化提示框内容  },  legend: { // 添加图例组件  orient: 'vertical',  left: 'left',  data: ['巴哈姆特', '其他年费', '精灵王', '奉神', '活动宠'], // 根据你的数据设置图例名称top:'30',},  series: [{  name:'巴哈姆特登场占比',type: 'pie', // 改为饼图类型  radius: '50%', // 饼图的半径,可以是百分比或者具体的像素值  data: [  {value: 68, name: '巴哈姆特'},  {value: 115, name: '其他年费'},  {value: 92.0, name: '精灵王'},  {value: 90, name: '奉神'},  {value: 38, name: '活动宠'}  ],  labelLine: {  show: true  },  emphasis: { // 高亮状态下的样式  label: {  show: true,  fontSize: '30',  fontWeight: 'bold'  }  }  }]  };var myChart2 = echarts.init(document.getElementById("main2"));var option2 = {   color: ['blue',' LimeGreen', 'Darkgreen', 'red', 'Purple'],backgroundColor: 'rgba(128,128,128,0.1)',  title: { text: '巴哈姆特数值', },tooltip: { toolip: { show: true }, },radar: {indicator: [{ name: '精力', max: 200,color:'blue'},{ name: '攻击', max: 200,color:'LimeGreen'},{ name: '防御', max: 200,color:'Darkgreen' },{ name: '魔攻', max: 200,color:'red' },{ name: '魔防', max: 200,color:'Purple' },{ name: '速度', max: 200,color:'yellow'},]series: [{     type: 'radar',   data: [{value: [166,155,141,100,141,139],name:'巴哈姆特数值',}],}]};myChart1.setOption(option1);   myChart2.setOption(option2);   myChart1.group = 'group1';myChart2.group = 'group1';echarts.connect('group1');
</script>
</body>
</html>

现在,运行代码看看效果

可以看到我们预期的多表联动效果呈现了,快去试试吧~ 

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

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

相关文章

Java数据结构二叉树

概念 一棵二叉树是结点的一个有限集合&#xff0c;该集合&#xff1a; 1. 或者为空 2. 或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 从上图可以看出&#xff1a; 1. 二叉树不存在度大于2的结点 2. 二叉树的子树有左右之分&#xff0c;次序不能颠倒&#x…

医疗器械FDA | 常见的网络安全材料发补问题都有哪些?

FDA网络安全资料发补咨询点此​​获取https://work.weixin.qq.com/ca/cawcde5ee29d239046 ————————--- 01 安全文档编写问题 FDA网络安全文档编写格式、内容、可读性等未满足官方要求&#xff0c;则将可能被要求发补整改编写后的文档。 02 安全管理问题 a. 网络安…

【机器学习】K-means聚类算法:原理、应用与优化

一、引言 1、简述聚类分析的重要性及其在机器学习中的应用 聚类分析&#xff0c;作为机器学习领域中的一种无监督学习方法&#xff0c;在数据探索与知识发现过程中扮演着举足轻重的角色。它能够在没有先验知识或标签信息的情况下&#xff0c;通过挖掘数据中的内在结构和规律&a…

深度学习学习日记4.7

1.梯度下降 w 新 w旧 - 学习率梯度 训练的目的就是让 loss 减小 2.前向传播进行预测&#xff0c; 反向传播进行训练(每一个参数通过梯度下降进行更新参数)&#xff0c;(1前向传播 2求 loss 3反向传播 4梯度更新) 能够让损失下降的参数&#xff0c;就是更好的参数。 损失…

数据分析-数据清洗8大类方法|数据采集|电商数据API接口

数据分析首先我们需要坐数据采集 jd API 接入说明 API地址: 调用示例&#xff1a; 参数说明 通用参数说明 url说明 ……/平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,…

阿里云微调chatglm3-6b---只有一个python解释器但gradio要求版本不兼容怎么办

安装LLAMA参考博文http://t.csdnimg.cn/6yYwG 在用LLAMA微调大模型的时候总是出现connected error out并且出现这样的界面 这是由于LLMA所要求的gradio版本>4.0.0,<4.2.0&#xff0c;然而chatglm3-6b要求的gradio版本需要gradio3.39.0才能显示出web_demo_gradio.py渲染…

C++反向迭代器的实现

一、反向迭代器的定义 在容器中从尾元素向首元素反向移动的迭代器 对于反向迭代器&#xff0c;递增和递减的含义会颠倒过来 递增一个反向迭代器会移动到前一个元素 递减一个迭代器会移动到下一个元素 二、反向迭代器的实现 // 适配器 -- 复用 template<class Iterator,…

Weblogic任意文件上传漏洞(CVE-2018-2894)漏洞复现(基于vulhub)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

数据库安全(二),3天拿到网易网络安全岗offer

数据脱敏厂家 国外&#xff1a;Informatica国内&#xff1a;比特信安、美创、安华、神州数码 由于敏感数据的重要性以及特殊性&#xff0c;一般不建议使用国外产品。 数据库漏扫 又叫数据库安全评估系统 漏扫对象 DBMS脆弱点&#xff1a;已知的DBMS自身存在的漏洞弱口令缺…

力扣HOT100 - 160. 相交链表

解题思路&#xff1a; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if…

笔记本会不会自动升级win11,win10会自动升级到win11吗

众所周知,win11是微软新推出的pc端操作系统,从发布到现在也有一年的时间了,不少用户想要安装使用。但是问题来了,笔记本会不会自动升级win11呢?答案是,并不会自动更新,如果你是正版win10系统,可以通过收到的升级通知进行升级win11。 win10会自动升级到win11吗 升级win1…

批量修改文件名后缀,支持自定义重命名并更改扩展名,高效管理文件

你是否曾经因为需要修改大量文件的扩展名而头疼不已&#xff1f;手动一个个修改&#xff0c;既耗时又容易出错。现在&#xff0c;有了这款批量修改文件名后缀的神器&#xff0c;只需一键操作&#xff0c;即可轻松完成所有文件的扩展名修改。无论是图片、文档、视频还是音频&…

关于QEMU模拟器本身以及和CXL功能模拟相关内容的学习

前言&#xff1a;在写Paper的时候&#xff0c;发现直接引用QEMU官网关于QEMU的介绍实在是一个图省事儿的方法&#xff0c;但是并不可取。即使是一小段&#xff0c;也要去真正了解QEMU的基本原理&#xff0c;如何实现功能模拟&#xff0c;以及目前实现的与CXL相关的内容。 注&am…

成功的环保企业:四大核心能力的深度剖析|中联环保圈

在追求可持续发展的道路上&#xff0c;环保企业不仅承载着社会责任&#xff0c;还要面对市场的考验。为了在激烈的竞争中脱颖而出&#xff0c;环保企业需要练就四大基本功&#xff1a;挣钱、要钱、省钱和花钱。这四大能力相互关联&#xff0c;共同构成了企业稳健运营的基石&…

Web 前端性能优化之七:数据存储与缓存技术

7、数据存储 在开发Web应用的过程中&#xff0c;会涉及一些数据的存储需求&#xff0c;常见的存储方式可能有&#xff1a; 保存登录态的Cookie&#xff1b; 使用浏览器本地存储进行保存的Local Storage和Session Storage&#xff1b; 客户端数据持久化存储方案涉及的Web SQ…

关于MCU产品开发参数存储的几种方案

关于MCU产品开发参数存储的几种方案 Chapter1 关于MCU产品开发参数存储的几种方案Chapter2 单片机参数处理[保存与读取]Chapter3 嵌入式设备参数存储技巧Chapter4 STM32硬件I2C的一点心得(AT24C32C和AT24C64C) Chapter1 关于MCU产品开发参数存储的几种方案 原文链接 在工作中…

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

位图布隆过滤器的原理及实现

目录 位图的概念&#xff1a; 位图的前置知识&#xff1a;位运算 位图的实现&#xff1a; 位图的基本参数和构造方法&#xff1a; 位图的插入&#xff1a; 位图的查找&#xff1a; 位图的删除&#xff1a; 布隆过滤器概念&#xff1a; 布隆过滤器的实现&#xff1a; …

TI-ST论文速读

Domain Adaptation for Medical Image Segmentation Using Transformation-Invariant Self-training 摘要 能够利用未标记数据的模型对于克服不同成像设备和配置中获取的数据集之间的巨大分布差距至关重要。在这方面&#xff0c;基于伪标记的自训练技术已被证明对半监督域适应…

微商商城源码小程序好用么?

商城APP作为电子商务行业的重要组成部分&#xff0c;已经成为了人们购物的主要方式之一。为了在竞争激烈的市场中脱颖而出&#xff0c;开发一款专业且思考深度的商城APP方案显得尤为关键。本文将从专业性和思考深度两个方面&#xff0c;探讨商城APP的开发方案。 一、专业性的重…