echarts环形图两层

news2024/9/22 21:30:07

1、实现效果
环形图,有两层环形,扇形之间有间隔,中间是标题,图例是自定义图片
在这里插入图片描述
2、实现
在template里写一个盒子放图表

<div class="chartMachineStyle" ref="chartMachine"></div>

在style里设置盒子尺寸

.chartMachineStyle {
			height: 200px;
			width:355px
		}

在data中声明一个变量

myChartMachine: '',

在methods写一个配置图表函数

	initChartMachine() {
				var data = [{
					name: '机器1',
					value: '30',
					icon: 'image://https://asc-test1.oss-cn-beijing.aliyuncs.com/2023/07/05/icon1.png'
				}, {
					name: '机器2',
					value: '24',
					icon: "image://https://asc-test1.oss-cn-beijing.aliyuncs.com/2023/07/05/icon2.png",
				}, {
					name: '机器3',
					value: '16',
					icon: "image://https://asc-test1.oss-cn-beijing.aliyuncs.com/2023/07/05/icon3.png",
				}, {
					name: '机器4',
					value: '6',
					icon: "image://https://asc-test1.oss-cn-beijing.aliyuncs.com/2023/07/05/icon4.png",
				}, {
					name: '机器5',
					value: '2',
					icon: "image://https://asc-test1.oss-cn-beijing.aliyuncs.com/2023/07/05/icon5.png",
				}, ]
				var subText = '78'
				let _this = this;
				this.myChartMachine = echarts.init(this.$refs.chartMachine)
				var option;
				option = {
					tooltip: {
						trigger: "item",
						formatter: "{b}<br/> {c}台  ({d}%)",
						backgroundColor: "rgba(50, 50, 50, 0.7)",
						color: "rgba(50, 50, 50, 0.7)",
						borderWidth: "1", //边框宽度设置1
						borderColor: "rgba(50, 50, 50, 0.7)", //设置边框颜色
						textStyle: {
							color: "#ffffff" //设置文字颜色
						},
					},
					//环形图中间文字
					title: {
						text: subText,
						subtext: "农机总数",
						textStyle: {
							fontSize: 32,
							color: '#ffffff',
							fontWeight: 600,
							textShadowOffsetY: -2,
							textShadowBlur: 5,
							textShadowColor: 'rgb(199,227,252,0.24)',
						},
						subtextStyle: {
							fontSize: 13,
							color: "rgba(255,255,255,0.5)",
						},
						textAlign: "center", //图例文字居中显示
						x: "25%", //距离左边的距离
						y: "36%" //距离上边的距离
					},
					grid: {
						//设置图表撑满整个画布
						//left: '50%',
					},
					legend: {
						orient: "vertical", //竖直展示,如果横着的话,这个可以直接去掉
						top: "center",
						align: "left",
						itemGap: 20, //数据上下的距离
						data: data,
						orient: 'vertical',
						x: 'right', //可设定图例在左、右、居中
						y: 'center', //可设定图例在上、下、居中
						itemHeight: 11, // 每个图例的宽度
						itemWidth: 11, // 每个图例的高度
						// 重写legend显示样式
						formatter: function(name) { //用来格式化图例文本,支持字符串模板和回调函数两种形式。模板变量为图例名称 {name}
							var tarValue;
							for (var i = 0; i < data.length; i++) {
								if (data[i].name == name) {
									tarValue = data[i].value;
								}
							}
							var arr = [
								'{a|' + name + '}',
								'{b|' + tarValue + ' 台' + '}',
							]
							return arr.join('')
						},
						textStyle: {
							rich: {
								a: {
									fontSize: 14,
									color: 'rgb(255,255,255,0.6)',
									padding: [0, 0, 0, 10],
									width: 60,
								},
								b: {
									fontSize: 14,
									color: '#8BDEFF',
									align: 'center',
									shadowColor: 'rgb(0,14,17,0.19)',
									shadowBlur: 1,
									shadowOffsetY: 2,
								}
							}
						},
					},
					series: [{
							name: '农机数量',
							type: 'pie',
							radius: ['45%', '55%'],
							center: ['27%', '50%'],
							avoidLabelOverlap: false,
							emphasis: {
								scale: false,
								label: {
									show: false,
									fontSize: 40,
									fontWeight: 'bold'
								}
							},
							itemStyle: {
								borderColor: '#80888F',
								borderWidth: 3,
								color: function(colors) {
									var colorList = ["#4F89BB", "#67b0c2", "#ccb977", "#c0914e",
										"#2a9ebe"
									];
									return colorList[colors.dataIndex];
								},
								borderRadius: 0,
							},
							label: {
								show: false,
								position: 'center'
							},
							labelLine: {
								show: false
							},
							data: data
						},
						{
							name: '农机数量',
							type: 'pie',
							radius: ['55%', '83%'],
							center: ['27%', '50%'],
							avoidLabelOverlap: false,
							itemStyle: {
								borderColor: '#80888F',
								borderWidth: 3,
								color: function(colors) {
									var colorList = ["#315779", "#305f6f", "#72725a", "#6b5f4c",
										"#205e78"
									];
									return colorList[colors.dataIndex];
								},
								borderRadius: 0,
							},
							label: {
								show: true,
								formatter: function(data) {
									return data.percent.toFixed(1) + "%";
								},
								color: 'rgba(255,255,255,0.5)',
								fontSize: 12,
								position: 'inner'
							},
							emphasis: {
								label: {
									show: true,
									formatter: function(data) {
										return data.percent.toFixed(1) + "%";
									},
								}
							},
							labelLine: {
								show: false
							},
							data: data
						},
					]
				};
				this.myChartMachine.setOption(option, true);
				window.addEventListener("resize", () => {
					if (this.myChartMachine) {
						this.myChartMachine.resize();
					}
				});
			},

调用即可

this.initChartMachine();

3、备注
这里扇形之间的间隔用边框实现效果,将边框设为一定宽度,再将颜色设为背景色,就好像扇形之间有距离了一样。

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

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

相关文章

状态模式:游戏、工作流引擎中常用的状态机是如何实现的?

从今天起&#xff0c;我们开始学习状态模式。在实际的软件开发中&#xff0c;状态模式并不是很常用&#xff0c;但是在能够用到的场景里&#xff0c;它可以发挥很大的作用。从这一点上来看&#xff0c;它有点像我们之前讲到的组合模式。 可以简短的回顾一下组合模式&#xff1a…

Windows cmd窗口下的代码页

查看当前的活动代码页 在cmd窗口下执行命令chcp可以查看当前的活动代码页&#xff1a; 临时修改活动代码页 在cmd窗口下执行命令chcp [nnn]&#xff0c;可以临时修改活动代码页&#xff08;窗口关闭后修改就失效了&#xff09;&#xff0c;其中[nnn]表示具体的代码页标识符…

Java 中的反射是什么?如何使用它?

Java 中的反射是什么&#xff1f;如何使用它&#xff1f; 在 Java 编程中&#xff0c;反射是一种高级的编程技术&#xff0c;可以在运行时动态地获取和操作类的信息。反射使得程序可以在运行时对类进行检查和操作&#xff0c;而不需要在编译时知道类的完整信息。这使得程序可以…

flstudio怎么保存工程文件?详解FL Studio 21保存文件的方法

FL Studio 21全称Fruity Loops Studio2023&#xff0c;这款软件也被人们亲切的称之为水果&#xff0c;它是一款功能强大的音乐创作编辑软件&#xff0c;拥有全功能的录音室&#xff0c;大混音盘以及先进的音乐制作工具&#xff0c;用户通过使用该软件&#xff0c;就可以轻松制作…

Ubuntu下搭建Redis分片集群

目录 准备实例和配置 启动分片集群 测试分片集群 分片集群需要的节点数量较多&#xff0c;搭建一个最小的分片集群&#xff0c;包含3个master节点&#xff0c;每个master包含一个slave节点&#xff0c;并且master之间通过心跳机制互相监听&#xff0c;此模式下不需要哨兵监听…

js高级进阶:promise同步编程技巧

promise是ES6引进的异步编程解决方案&#xff0c;是一个构造函数&#xff0c;可以实例化对象&#xff0c;可以解决回调地狱的问题。 首先我们看一下promise的实例化对象是什么&#xff1a; let P new Promise(function(){});//new一个promise传入一个函数console.log(P);打印结…

读发布!设计与部署稳定的分布式系统(第2版)笔记23_互联层之DNS

1. 互连层是可以真正构建高可用性的地方 1.1. 流量管理 1.2. 负载均衡 1.3. 服务发现 2. 不同规模的解决方案 2.1. 在小公司中 2.1.1. 只有少数开发人员的小企业可以直接使用DNS条目 2.1.2. 生成变更的开发人员较少&#xff0c;变更频度变低 2.1.3. 可能根本就没有独立…

高阶C语言|指针的进阶

指针的主题&#xff0c;在指针初阶阶段&#xff0c;我们知道了指针的概念&#xff1a; 1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2.指针的大小是固定4/8个字节&#xff08;32为平台/64位平台&#xff09;。 3.指针是有类型&#xff0c…

java+springboot基于云的学习笔记系统设计与开发 _44va6

学习笔记系统按照权限的类型进行划分&#xff0c;分为管理员和用户共两个模块。系统实现登录、个人信息修改&#xff0c;还可以对个人中心&#xff0c;用户管理&#xff0c;笔记本管理&#xff0c;笔记分享管理&#xff0c;分享类型管理&#xff0c;学习资料管理&#xff0c;购…

Makefile:10分钟带你了解makefile

1、Makefile是什么 在Linux系统中&#xff0c;Makefile是一个脚本文件&#xff0c;通常名为Makefile或者makefile&#xff0c;它使得程序员能够快速便捷地完成调用程序、编译代码、定位故障等工作。 Makefile是一个用于自动化构建和编译程序的脚本文件。它包含了程序的所有源…

Ubuntu下配置Redis哨兵集群

目录 准备实例和配置 启动哨兵集群 测试配置 搭建一个三节点形成的Sentinel集群&#xff0c;来监管Redis主从集群。 三个sentinel哨兵实例信息如下&#xff1a; 节点IPPORTs1192.168.22.13527001s2192.168.22.13527002s3192.168.22.13527003 准备实例和配置 要在同一台虚…

01. Docker基础环境构建

目录 1、前言 2、关于Docker 2.1、几个术语 2.2、Docker容器化的价值 3、搭建基础环境 3.1、安装VMware 3.2、安装Doker 3.3、启动 3.4、验证Docker环境 4、小结 1、前言 在这里我们将学习关于Docker的一些技能知识&#xff0c;那么首先我们应该怼Docker有一个基础的…

服务器离线部署docker,镜像迁移,mysql主从搭建等服务

公司项目要上线项目&#xff0c;买了两台云服务器&#xff0c;需进行环境部署&#xff08;1台接入公网&#xff0c;一台只能局域网访问&#xff09;&#xff0c;主要部署以下内容 1、服务器之间配置ssh免密 2、离线docker部署 3、docker镜像迁移 4、redis服务 5、minio文件…

Idea配置Maven优先从本地仓库获取依赖

idea配置maven依赖优先从指定本地仓库获取 在设置中搜索 Runner ,在VM Option中设置参数-DarchetypeCataloginternal <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http…

沐风老师MaxScript快速入门教程

Maxscript是将自定义3dMax应用的更强大的方法之一。结合内置的侦听器和编辑器&#xff0c;我们在运行时操作和测试代码&#xff0c;使其成为用户试验和探索改进软件体验的强大选项。通过Maxscript&#xff0c;我们几乎可以操作软件中的每一个对象&#xff0c;包括但不限于&…

【C++】-vector的模拟实现(以及memcpy如何使用)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

Spring-MVC的注解扫描-spring17

包括我们业务层和Dao层&#xff0c;去帮助别人去扫 只扫controller下的注解

00_YS_硬件电路图

1.主控制芯片的型号 STM32F407IGT6&#xff0c;LQFP-176&#xff0c;1MB 内部 FLASH&#xff0c;192KB RAM USART3 RS485 通信&#xff0c;芯片使用 SP3072EEN; UART5 RS232 通信&#xff0c; CAN 1 路&#xff0c;型号 SN65HVD230 USB 支持 …

Python应用实例(二)数据可视化(三)

数据可视化&#xff08;三&#xff09; 1.使用Plotly模拟掷骰子1.1 安装Plotly1.2 创建Die类1.3 掷骰子1.4 分析结果1.5 绘制直方图1.6 同时掷两个骰子1.7 同时掷两个面数不同的骰子 1.使用Plotly模拟掷骰子 本节将使用Python包Plotly来生成交互式图表。需要创建在浏览器中显示…

代码随想录算法训练营第十九天 | 动态规划系列5,6,7,8

动态规划系列5,6,7,8 377 组合总和 Ⅳ未看解答自己编写的青春版重点代码随想录的代码我的代码(当天晚上理解后自己编写) 爬楼梯进阶322 零钱兑换未看解答自己编写的青春版写完这道题后的感受重点代码随想录的代码动态规划&#xff0c;也要时刻想着剪枝操作。我的代码(当天晚上理…