使用 ECharts 绘制咖啡店各年订单的可视化分析

使用 ECharts 绘制咖啡店各年订单的可视化分析

在这篇博客中,我将分享一段使用 ECharts 库创建可视化图表的代码。通过这段代码,我们可以直观地分析咖啡店各年订单的情况。

饼图

这段代码包含了两个 ECharts 图表,一个是饼图,用于展示各年订单量的占比情况;

$.getJSON("data/咖啡店各年订单.json", "", function (data) {

			// 基于准备好的dom,初始化ECharts图表
			var myChart1 = echarts.init(document.getElementById("main1"));
			var option1 = { // 指定第1个图表option1的配置项和数据
				color: ['#46eda9', '#47e4ed', '#4bbbee', '#4f8fa8','#4586d8', '#4f68d8',],
				backgroundColor: '#d6ecf0', // 配置背景色,rgba设置透明度0.1
				title: {
					text: '咖啡店各年订单量占比情况',
					color:'#f3f9f1',
					x: 'center',
					y: 12,
				},
				tooltip: {
					trigger: "item",
					formatter: "{a}<br/>{b}:{c}({d}%)"
				},
				legend: {
					orient: 'vertical',
					x: 15,
					y: 15,
					data: data.product
				},
				series: [{ // 配置第1个图表的数据系列
					name: '总订单量:',
					type: 'pie',
					radius: '70%',
					center: ['50%', 190],
					data: data.data
				}]
			};
			myChart1.setOption(option1); // 使用指定的配置项和数据显示饼图

折线图

另一个是折线图,可以更详细地展示不同年份的订单数据。

// 基于准备好的dom,初始化ECharts图表
			var myChart2 = echarts.init(document.getElementById("main2"));
			var option2 = { // 指定第2个图表的配置项和数据
				color: ['#4f8fa8','#4586d8', '#4f68d8', '#F4E001', '#F0805A', '#26C0C0'],
				backgroundColor: '#e3f9fd', //配置背景色,rgba设置透明度0.1
				tooltip: {
					trigger: 'axis',
					axisPointer: {
						type: 'shadow'
					}
				}, //配置提示框组件
				toolbox: { // 配置第2个图表的工具箱组件
					show: true,
					orient: 'vertical',
					left: 550,
					top: 'center',
					feature: {
						mark: {
							show: true
						},
						restore: {
							show: true
						},
						saveAsImage: {
							show: true
						},
						magicType: {
							show: true,
							type: ['line', 'bar', 'stack', 'tiled']
						}
					}
				},
				xAxis: [{
					type: 'category',
					data: data.product
				}], // 配置第2个图表的x轴坐标系
				yAxis: [{
					type: 'value',
					splitArea: {
						show: true
					}
				}], // 配置第2个图表的y轴坐标系
				series: [ // 配置第2个图表的数据系列
					{
						name: data.names1,
						type: 'line',
						data: data.values1,
					},
					{
						name: data.names2,
						type: 'line',
						data: data.values2,
					},
					{
						name: data.names3,
						type: 'line',
						data: data.values3,
					},
					{
						name: data.names4,
						type: 'line',
						data: data.values4,
					}
				]
			};
			myChart2.setOption(option2);

$.getJSON 方法

代码中,我们通过 $.getJSON 方法获取了数据,并将其应用于图表的配置中。

$.getJSON("data/咖啡店各年订单.json", "", function (data) {}

每个图表都有自己的配置选项,例如颜色、标题、坐标轴等。

//饼图配置项
var option1 = {}
//折线图配置项
var option2 = {}

特别值得一提的是,这里还实现了多图表联动功能。通过设置相同的 group 值或直接传入 ECharts 对象,我们可以在不同图表之间建立关联,当在一个图表中进行操作时,另一个图表也会相应地做出反应。

多表联动功能

方法一:

// 多图表联动配置方法1:分别设置每个echarts对象的group值
			 myChart1.group = 'group1';
			 myChart2.group = 'group1';
			 echarts.connect('group1');

方法二

多图表联动配置方法2:直接传入需要联动的echarts对象myChart1,myChart2
    echarts.connect([myChart1, myChart2]);

 完整代码:

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<script type="text/javascript" src='js/echarts.js'></script>
	<script type="text/javascript" src='js/jquery-3.3.1.js'></script>
</head>

<body>
	<div id="main1" style="width: 600px; height:400px"></div>
	<div id="main2" style="width: 600px; height:400px"></div>
	<script type="text/javascript">
		$.getJSON("data/咖啡店各年订单.json", "", function (data) {

			// 基于准备好的dom,初始化ECharts图表
			var myChart1 = echarts.init(document.getElementById("main1"));
			var option1 = { // 指定第1个图表option1的配置项和数据
				color: ['#46eda9', '#47e4ed', '#4bbbee', '#4f8fa8','#4586d8', '#4f68d8',],
				backgroundColor: '#d6ecf0', // 配置背景色,rgba设置透明度0.1
				title: {
					text: '咖啡店各年订单量占比情况',
					color:'#f3f9f1',
					x: 'center',
					y: 12,
				},
				tooltip: {
					trigger: "item",
					formatter: "{a}<br/>{b}:{c}({d}%)"
				},
				legend: {
					orient: 'vertical',
					x: 15,
					y: 15,
					data: data.product
				},
				series: [{ // 配置第1个图表的数据系列
					name: '总订单量:',
					type: 'pie',
					radius: '70%',
					center: ['50%', 190],
					data: data.data
				}]
			};
			myChart1.setOption(option1); // 使用指定的配置项和数据显示饼图



			// 基于准备好的dom,初始化ECharts图表
			var myChart2 = echarts.init(document.getElementById("main2"));
			var option2 = { // 指定第2个图表的配置项和数据
				color: ['#4f8fa8','#4586d8', '#4f68d8', '#F4E001', '#F0805A', '#26C0C0'],
				backgroundColor: '#e3f9fd', //配置背景色,rgba设置透明度0.1
				tooltip: {
					trigger: 'axis',
					axisPointer: {
						type: 'shadow'
					}
				}, //配置提示框组件
				toolbox: { // 配置第2个图表的工具箱组件
					show: true,
					orient: 'vertical',
					left: 550,
					top: 'center',
					feature: {
						mark: {
							show: true
						},
						restore: {
							show: true
						},
						saveAsImage: {
							show: true
						},
						magicType: {
							show: true,
							type: ['line', 'bar', 'stack', 'tiled']
						}
					}
				},
				xAxis: [{
					type: 'category',
					data: data.product
				}], // 配置第2个图表的x轴坐标系
				yAxis: [{
					type: 'value',
					splitArea: {
						show: true
					}
				}], // 配置第2个图表的y轴坐标系
				series: [ // 配置第2个图表的数据系列
					{
						name: data.names1,
						type: 'line',
						data: data.values1,
					},
					{
						name: data.names2,
						type: 'line',
						data: data.values2,
					},
					{
						name: data.names3,
						type: 'line',
						data: data.values3,
					},
					{
						name: data.names4,
						type: 'line',
						data: data.values4,
					}
				]
			};
			myChart2.setOption(option2); // 使用指定的配置项和数据显示堆叠柱状图


			// 多图表联动配置方法1:分别设置每个echarts对象的group值
			 myChart1.group = 'group1';
			 myChart2.group = 'group1';
			 echarts.connect('group1');

			// 多图表联动配置方法2:直接传入需要联动的echarts对象myChart1,myChart2
			//echarts.connect([myChart1, myChart2]);
		})
	</script>
</body>

</html>

总的来说,这段代码展示了如何使用 ECharts 库创建美观、实用的可视化图表,为数据分析提供了有力的支持。希望这篇博客能对大家有所帮助,如果有任何问题或建议,欢迎留言交流。

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

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

相关文章

lomobok源码编译学习笔记(1)

lomobok学习笔记&#xff08;1&#xff09; 项目导入 lombok的github地址 GitHub - projectlombok/lombok: Very spicy additions to the Java programming language. 开发工具 idea不知道为啥&#xff0c;装上ant工具也不好用&#xff0c;eclipse默认自带有ant,不需要装。…

matlab关于COE文件之读取操作

平台&#xff1a;matlab2021b 场景&#xff1a;在使用fir滤波器后&#xff0c;我们使用matlab生成coe文件后。在xilinx新建IP的后&#xff0c;数据流经过FIR的IP核后数据位宽变宽。这时候我们需要对数据进行截位。这时候需要读取coe文件求和后&#xff0c;计算我们需要截位的位…

Shell学习 - 2.27 Linux bc命令:一款数学计算器

Bash Shell 内置了对整数运算的支持&#xff0c;但是并不支持浮点运算&#xff0c;而 Linux bc 命令可以很方便的进行浮点运算&#xff0c;当然整数运算也不再话下。 bc是"Basic Calculator"的缩写。 bc 甚至可以称得上是一种编程语言了&#xff0c;它支持变量、数组…

初识ansible核心模块

目录 1、ansible模块 1.1 ansible常用模块 1.2 ansible-doc -l 列出当前anisble服务所支持的所有模块信息&#xff0c;按q退出 1.3 ansible-doc 模块名称 随机查看一个模块信息 2、运行临时命令 2.1 ansible命令常用的语法格式 3、常用模块详解与配置实例 3.1命令与…

RK3568驱动指南|第二篇 字符设备基础-第16章 一个驱动兼容不同设备实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

PhotoShop2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe Photoshop是一款由Adobe Systems开发的图像编辑软件。它被广泛用于图像处理和数字艺术创作&#xff0c;是设计师、摄影师和艺术家们的首选工具之一。 主要功能&#xff1a; 图像编辑&#xff1a; Photoshop提供了丰富的编辑…

content-type对数据采集的影响,猿人学58题

在拿猿人学网站 https://www.python-spider.com/api/challenge58 练习的时候发现请求头中少了 content-type之后结果全部不对了 当我设置headers如下时 headers {# accept: application/json, text/javascript, */*; q0.01,content-type: application/x-www-form-urlencode…

【前端Vue】Vue从0基础完整教程第7篇:组件化开发,组件通信【附代码文档】

Vue从0基础到大神学习完整教程完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;vue基本概念&#xff0c;vue-cli的使用&#xff0c;vue的插值表达式&#xff0c;{{ gaga }}&#xff0c;{{ if (obj.age > 18 ) { } }}&#xff0c;vue指令&#xff0c;综合…

使用WebSocket实现答题积分排名实时更新的功能

需求分析 接到一个需求&#xff0c;是一个答题积分小程序&#xff0c;其中有一个功能需求是需要实时更新答题积分排名的。之前通常比较常见的需求&#xff0c;都是指定某个时间点才更新答题排行榜的数据的。 经过技术调研&#xff0c;要实现答题积分排名实时更新的功能&#…

基于SpringBoot+Vue的装饰工程管理系统(源码+文档+包运行)

一.系统概述 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大&#xff0c;容错率低&a…

Word分节后,页码不连续、转PDF每节后多出空白页解决办法

1. 问题图例 废话少说&#xff0c;先上图&#xff1a; 2. 问题分析 问题分析&#xff1a;出现以上问题的原因可能有&#xff0c; 未链接到上一节页面布局中节的起始位置设置为[奇数页] 3. 解决问题 若为【1. 未链接到上一节】导致该问题出现&#xff0c;则我们需要选中页脚…

【Java开发指南 | 第十一篇】Java运算符

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 算术运算符关系运算符位运算符逻辑运算符赋值运算符条件运算符&#xff08;?:&#xff09;instanceof 运算符Java运算符优先级 Java运算符包括&#xff1a;算术运算符、关系运算符、位运算符、逻辑运算符、赋值…

Resilience中的RateLimiter

Resilience中的RateLimiter 一、RateLimiter&#xff08;限流&#xff09;1.常见的限流算法漏桶算法&#xff08;Leaky Bucket&#xff09;令牌桶算法&#xff08;Token Bucket&#xff09;——Spring cloud 默认使用该算法滚动时间窗口&#xff08;tumbling time window&#…

JVM之方法区的详细解析

方法区 方法区&#xff1a;是各个线程共享的内存区域&#xff0c;用于存储已被虚拟机加载的类信息、常量、即时编译器编译后的代码等数据&#xff0c;虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分&#xff0c;但是也叫 Non-Heap&#xff08;非堆&#xff09; 设置方法…

就业班 第三阶段(nginx) 2401--4.17 day1 nginx1

负载均衡集群 1、集群是什么&#xff1f; 1 集群&#xff08;cluster&#xff09;技术是一种较新的技术&#xff0c;通过集群技术&#xff0c;可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益&#xff0c;其任务调度则是集群系统中的核心技术。 …

【AI】什么是Ai Agent

什么是AI Agent&#xff1f; AI Agent是指人工智能代理&#xff08;Artificial Intelligence Agent&#xff09;是一种能够感知环境进行自主理解&#xff0c;进行决策和执行动作的智能体。AI Agent具备通过独立思考、调用工具逐步完成给定目标的能力。不同于大模型的区别在于&…

20240417,友元 FRIEND

本来要学习的吃瓜吃了一下午 目录 3.1 全局函数做友元 3.2 友元类 3.3 成员函数做友元 三&#xff0c;友元 3.1 全局函数做友元 #include<iostream> using namespace std; class Building {friend void goodGay(Building* building);//好朋友&#xff0c;可以访问…

13.哀家要长脑子了!

1. 442. 数组中重复的数据 - 力扣&#xff08;LeetCode&#xff09; 哎哟&#xff0c;可能是我太蠢了&#xff0c;我是真的觉得这些题目好神奇的&#xff0c;就这样做到了。感觉这道题跟昨天那道消失的它很类似&#xff0c;但是简单一点。 按照题目的要求数组如果排好序的话应…

必应Bing国内广告推广,帮助企业降低获客成本!

搜索引擎广告作为数字营销的重要手段之一&#xff0c;因其精准定位和效果可衡量而备受青睐。而在众多搜索引擎平台中&#xff0c;必应Bing以其独特的市场定位和用户群体成为不可忽视的广告推广渠道。云衔科技作为一家专业的数字营销服务提供商&#xff0c;致力于帮助企业实现高…

Fiddler抓包工具之高级工具栏中的Inspectors的使用

高级工具栏中的Inspectors的使用 Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片&#xff0c;HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合http标准的请求和响应头。Cookies标签可以看到…
最新文章