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

news2024/11/26 12:14:52

 在之前的文章中,我们深入学习ECharts特殊图表中的矩形树图以及Echarts中高级功能的多图表联动。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

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

目录

一、知识回顾

二、主题下载

官方主题 

自定义主题

三、代码实现

一、知识回顾

在之前的文章中我们学习了矩形树图和多图表联动。

矩形树图的配置项我们有几点需要注意的:

而它的效果是这样的

它的特点是拥有树形的结构是矩形的样式。是一种特殊的树状图,用于表示树形数据结构,如层次结构或分类信息。它以矩形的形式展现,每个矩形代表树中的一个节点,矩形的面积、颜色等属性可以表示节点的权重或其他重要信息。

多图表联动需要创建多个图表,我今天的例子是如何创建两个图表的联动

在使用下面的配置项连接优化两个图表

复习完了,现在,开始今天的学习吧。

二、主题下载

首先,我们要知道ECharts主题是指ECharts提供的一种数据可视化样式和风格的定制方式。ECharts是一款非常强大的数据可视化工具,它支持自定义主题,使得用户可以根据自己的需求来定制图表的样式和风格。

ECharts提供了多种主题,可以满足不同的数据可视化需求。我们可以在ECharts的官网的编辑文件中进行主题配置,配置完成后重命名并下载,然后在需要的页面进行引入,就可以正常使用了。

在ECharts中设置主题通常涉及到初始化echarts实例对象,并将配置项设置给该实例对象,其中包括指定主题。

官方主题 

我们先将ECharts提供的6个主题下载下来。官方下载地址:

主题下载 - Apache ECharts

直接点击图片,全部下载。

全部放到我们的js文件夹中,这样就完成了

自定义主题

现在我们来看看我们的自定义主题。

ECharts官网提供了非常丰富的自定义主题

从基本配置、映射、坐标轴到各个图表的配置,都可以根据自己的喜好自定义设置。

设置完成下载,同样放入我们的js文件夹即可 

三、代码实现

首先我们要插入我们的主题

<head>
	<meta charset="utf-8">
	<script type="text/javascript" src='js/echarts.js'></script>
    <script src="js/dark.js"></script>
    <script src="js/infographic.js"></script>
    <script src="js/macarons.js"></script>
    <script src="js/roma.js"></script>
    <script src="js/shine.js"></script>
    <script src="js/vintage.js"></script>
    <script src="js/jquery-3.3.1.js"></script>
</head>

注意:jquery.js文化是不可少的,我会以附件的形式上传到文章中

然后设置一个一个可下拉的列表,绑定我们的主题,以便于切换

    <div>
        <select id="selection" name="theme">
            <option value="dark">dark</option>
            <option value="infographic">infographic</option>
            <option value="macarons">macarons</option>
            <option value="roma">roma</option>
            <option value="shine">shine</option>
            <option value="vintage">vintage</option>
            </select>
        </div>

最后,我们需要调用我们的主题,创建新的实例

		myChart.setOption(option);  
        $('#selection').change(function() {  
            var themeName = $(this).val();  
   
            if (themeName === 'default') {  
                myChart.setOption(option);  
            } else {  
                myChart.dispose();  
                myChart = echarts.init(document.getElementById('main'), themeName);    
                myChart.setOption(option);  
                myChart.resize();  
        }}); 

完整代码:

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<script type="text/javascript" src='js/echarts.js'></script>
    <script src="js/dark.js"></script>
    <script src="js/infographic.js"></script>
    <script src="js/macarons.js"></script>
    <script src="js/roma.js"></script>
    <script src="js/shine.js"></script>
    <script src="js/vintage.js"></script>
    <script src="js/jquery-3.3.1.js"></script>
</head>

<body>
    <div><label>主题切换:</label></div>
    <div>
        <select id="selection" name="theme">
            <option value="dark">dark</option>
            <option value="infographic">infographic</option>
            <option value="macarons">macarons</option>
            <option value="roma">roma</option>
            <option value="shine">shine</option>
            <option value="vintage">vintage</option>
            </select>
        </div>
	<div id="main" style="width: 800px; height: 600px"></div>
	<script type="text/javascript">
		// 基于准备好的dom,初始化ECharts图表
		var myChart = echarts.init(document.getElementById("main"));
		var option = { // 指定图表的配置项和数据
			tooltip: {
				trigger: 'axis'
			},
			legend: {
				data: ['降水量', '蒸发量', '温度'],
				left: 'center',
				top: 12
			},
			xAxis: [{
				type: 'category',
				data: ['1月', '2月', '3月', '4月', '5月', '6月',
					'7月', '8月', '9月', '10月', '11月', '12月'
				]
			}],
			yAxis: [{ // 设置2个Y轴之1:降水量、蒸发量
					type: 'value',
					name: '水量',
					min: 0,
					max: 200,
					interval: 50,
					axisLabel: {
						formatter: '{value}  ml'
					}
				},
				{ // 设置2个Y轴之2:温度
					type: 'value',
					name: '温度',
					min: 0,
					max: 30,
					position: 'right', // 设置y轴安置的位置
					offset: 0, // 设置向右偏移的距离
					axisLabel: {
						formatter: '{value} °C'
					}
				}
			],
			series: [{
					name: '降水量',
					type: 'bar',

					data: [2.6, 5.9, 9, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6, 2.3]
				},
				{
					name: '蒸发量',
					type: 'bar',

					data: [2, 4.9, 7, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20, 6.4, 3.3]
				},
				{
					name: '温度',
					type: 'line',
					yAxisIndex: 1, //指定使用第2个y轴
					data: [2, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23, 16.5, 12, 6.2]
				}
			]
		};
		myChart.setOption(option);  
        $('#selection').change(function() {  
            var themeName = $(this).val();  
   
            if (themeName === 'default') {  
                myChart.setOption(option);  
            } else {  
                myChart.dispose();  
                myChart = echarts.init(document.getElementById('main'), themeName);    
                myChart.setOption(option);  
                myChart.resize();  
        }}); 
	</script>
</body>
</html>

在其中:

  • $('#selection').change(function() {:为上面的selection(一个可下拉的列表)绑定一个事件监听器,在改变它时,会更改相应的值
  • var themeName = $(this).val(): .val获取this也就是selection的值,赋给themeName
  •  if (themeName === 'default') {:  检查 themeName 是否等于字符串 'default'
  • myChart.setOption(option):  如果为default就正常使用原始的option对象
  • myChart.dispose();  销毁现有实例
  • myChart = echarts.init(document.getElementById('main'), themeName): //使用指定的 themeName 初始化一个新的 ECharts 实例,并将其赋值给 myChart 变量。document.getElementById('main') 获取页面上 ID 为 main 的元素  
  •  myChart.setOption(option):  为新创建的 myChart 实例设置配置选项
  • myChart.resize():调整实例大小,自适应容器 

设置完成后,就可以通过我们的下拉列表选择主题了

至此,我们的动态主题切换和自定义ECharts主题就学习完毕。

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

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

相关文章

Linux标准c库操作(4.15)

fopen函数“const char *mode”参数选项。 结果&#xff1a; 标准库c写入结构体到文件&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <string.h> #in…

L2-2 病毒溯源 坑点

病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株&#xff0c;而这些变异的病毒又可能被诱发突变产生第二代变异&#xff0c;如此继续不断变化。 现给定一些病毒之间的变异关系&#xff0c;要求你找出其中最长的一条变异链。 在此假设给出的变异都是由突变引起的&a…

【Java框架】Spring框架(四)——Spring中的Bean的创建与生命周期

目录 SpringBean的创建步骤后置处理器(PostProcessor)BeanFactoryPostProcessorBeanPostProcessorInstantiationAwareBeanPostProcessorpostProcessBeforeInstantiationpostProcessAfterInstantiationpostProcessProperties SmartInstantiationAwareBeanPostProcessordetermine…

【Python_PySide6学习笔记(三十六)】基于QGroupBox和QScrollArea实现带有滚动条的QGroupBox(分组框)

基于QGroupBox和QScrollArea实现带有滚动条的QGroupBox分组框 基于QGroupBox和QScrollArea实现带有滚动条的QGroupBox(分组框)前言正文1、创建QGroupBox并创建其内部布局2、创建QScrollArea并将QGroupBox设置为其内容3、将QScrollArea添加到主窗口的中心部件的布局中4、完整代码…

HTML的超链接

前言&#xff1a; 如图&#xff0c;我们在浏览网页时经常可以看到这样的字体&#xff08;点击便跳转到了别的地方了&#xff09;&#xff0c;今日就和各位一起学习一下超链接的相关知识。 相关知识1&#xff1a; 超链接的标签为&#xff1a;a ~使用格式为&#xff1a; <a h…

智慧城市可视化,山海鲸引领未来

随着信息技术的迅猛发展&#xff0c;智慧城市已成为城市发展的必然趋势。在这一背景下&#xff0c;山海鲸智慧城市可视化解决方案应运而生&#xff0c;以其独特的可视化技术和智能化管理功能&#xff0c;为城市管理者提供了全新的决策支持手段。 山海鲸智慧城市可视化解决方案…

docker的安装以及docker中nginx配置

机器 test3 192.168.23.103 1机器初始化配置 1.1关闭防火墙&#xff0c;清空防火墙规则 systemctl stop firewalld iptables -F setenforce 01.2部署时间同步 yum install ntp ntpdate -y1.3安装基础软件包 yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c make…

如何访问内网?

在互联网万维网上&#xff0c;我们可以轻松访问各种网站和资源。但是&#xff0c;有时我们需要访问局域网内的资源&#xff0c;例如公司内部的文件共享、打印机等。本文将介绍几种方法&#xff0c;帮助您实现访问内网的需求。 内网穿透技术 内网穿透技术是一种通过互联网将局域…

人工智能论文GPT-3(1):2020.5 Language Models are Few-Shot Learners;摘要;引言;scaling-law

摘要 近期的工作表明&#xff0c;在大量文本语料库上进行预训练&#xff0c;然后针对特定任务进行微调&#xff0c;可以在许多NLP任务和基准测试中取得实质性进展。虽然这种方法在架构上通常是与任务无关的&#xff0c;但仍然需要包含数千或数万示例的针对特定任务的微调数据集…

STM32G431RBT6移植FreeRTOS

引言&#xff1a; 本文专门为参加了蓝桥杯嵌入式赛道的同学准备&#xff0c; 大家可能会有这样一个问题&#xff0c; 比完赛之后&#xff0c; 对于像继续使用STM32G431RBT6学习FreeRTOS的&#xff0c; 发现网上的教程使用的板子基本上都是F1和F4的&#xff0c; 其实呢&#xff…

多系统源代码暴露在互联网,超四百万公民个人信息存在泄露的风险

#哈尔滨等保# 一 安全事件阐述 截至2024年3月&#xff0c;绿盟科技创新研究院监测到上万个互联网中暴露的DevOps资产存在未授权访问情况。其中&#xff0c;源代码仓库成为未授权访问的“重灾区”。这些允许未授权访问的源代码仓库暴露了境内多家机构的重要系统源代码&#x…

html公众号页面实现点击按钮跳转到导航

实现效果&#xff1a; 点击导航自动跳转到&#xff1a; html页面代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>跳转导航</title><meta name"keywords" conten…

【AR开发示例】实现AR管线巡检

写在前面的话 这是一篇旧文档&#xff0c;代码仓库见 https://gitee.com/tanyunxiu/AR-pipe 本文档是基于超图移动端SDK的AR模块开发的示例&#xff0c;仅供参考&#xff0c;SDK在持续迭代中&#xff0c;相关描述可能有变化。 示例介绍 这是一个使用AR查看墙内管线的基础示…

uniapp 如何区分目前运行环境(app、web、mp-weixin)

platform 区分 iOS、Android uniplatform 区分 app、web、mp-weixin ....

fatal error LNK1120: xxxx unresolved externals

场景&#xff1a; A项目Library&#xff0c;编译环境VS2008DDKWarizd, 编译平台WIN7XP; B项目驱动, 编译环境VS2008&#xff0c;编译平台Rlease32位&#xff0c;DDK版本相同,都是7.0 在B项目集成A项目的32位LIB库时&#xff0c;出现此错误&#xff0c;看错误很常见的找不到符号…

Linux【实战】—— LAMP环境搭建 部署网站

目录 一、介绍 1.1什么是LAMP&#xff1f; 1.2LAMP的作用 二、部署静态网站 2.1 虚拟主机&#xff1a;一台服务器上部署多个网站 2.1.1 安装Apache服务 2.1.2 防火墙配置 2.1.3 准备网站目录 2.1.4 创建网站的配置文件 2.1.5 检查配置文件是否正确 2.1.6 Linux客户端…

润石科技(RUNIC)汽车电子应用方案和物料选型

一、润石科技&#xff08;RUNIC&#xff09;简介 江苏润石科技有限公司是一家专注于高性能、高品质模拟/混合信号集成电路研发和销售的高科技半导体设计公司。公司主要产品线分为两类&#xff1a;信号链和电源管理&#xff0c;其中信号链包含运算放大器、比较器、模拟开关、数…

Mac 部署 GPT-2 预训练模型 gpt2-chinese-cluecorpussmall

文章目录 下载 GPT-2 模型快速开始 GPT-2 下载 GPT-2 模型 https://huggingface.co/uer/gpt2-chinese-cluecorpussmall git clone https://huggingface.co/uer/gpt2-chinese-cluecorpussmall # 或单独下载 LFS GIT_LFS_SKIP_SMUDGE1 git clone https://huggingface.co/uer/gpt…

基于Spring Boot+Vue的校园网上店铺,开启便捷购物新模式

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

递归 python

↵一、简单理解 解决问题的一种方法&#xff0c;它将问题不断的分成更小的子问题&#xff0c;直到子问题可以用普通的方法解决。通常情况下&#xff0c;递归会使用一个不停调用自己的函数。 【注】&#xff1a;每一次递归调用都是在解决一个更小的问题&#xff0c;如此进行下…