当前位置: 首页 > news >正文

vue---echarts环形图

1、完整代码直接可以cv 

<template><div id="main1"></div>
</template><script>
import * as echarts from 'echarts';
// import { mapState } from 'vuex';
// import { Alarm_Device } from '../utils/api.js';
export default {name: 'PieChart',data() {return {chart: null,data: [{ value: 1048, name: '人体探测器', itemStyle: { color: '#4f7ff7' } },{ value: 262, name: '生命体征探测器', itemStyle: { color: '#be71f2' } },{ value: 210, name: '防摔倒探测器', itemStyle: { color: '#7586f5' } },{ value: 140, name: '智能床垫', itemStyle: { color: '#6ee497' } },{ value: 90, name: '智能手表', itemStyle: { color: '#4ebfff' } }]};},computed: {// ...mapState(['login']),},mounted() {this.initChart();this.registerUser()},beforeDestroy() {if (this.chart) {this.chart.dispose();}},methods: {getItemStyleByName(name) {// 根据设备名称返回对应的颜色const colorMap = {'人体探测器': '#4f7ff7','生命体征探测器': '#be71f2','防摔倒探测器': '#7586f5','智能床垫': '#6ee497','智能手表': '#4ebfff'};return { color: colorMap[name] || '#ffffff' }; // 如果名称未找到,则默认为白色},initChart() {const chartDom = document.getElementById('main1');this.chart = echarts.init(chartDom);const options = this.getChartOptions();this.chart.setOption(options);},getChartOptions() {const total = this.data.reduce((sum, item) => sum + item.value, 0);const dataWithPercentage = this.data.map(item => ({value: item.value,name: item.name,percentage: `${(item.value / total * 100).toFixed(1)}%`,itemStyle: item.itemStyle}));return {title: {text: '总数量',subtext: '100%',left: 'center',top: '40%',left: '29%',textAlign: 'center',textStyle: {fontSize: 18,fontWeight: 'bold',color: '#ffffff'},subtextStyle: {fontSize: 17,color: '#ffffff'}},legend: {orient: 'vertical',right: '16%',top: 'center',textStyle: {color: '#fff',  // 图例文字颜色fontSize: 12,   // 图例文字大小},formatter: (name) => {const item = dataWithPercentage.find(d => d.name === name);return item ? `${item.name} ${item.percentage}` : name;},},tooltip: {trigger: 'item',},label: {show: true,color: '#fff',  // 设置文字颜色为白色position: 'outside',formatter: ({ data }) => `${data.percentage}` // 只显示百分比},emphasis: {label: {show: true,fontSize: 20,fontWeight: 'bold',color: '#fff'  // 确保在强调状态下文字依然为白色},},labelLine: {show: true,lineStyle: {color: '#fff'  // 设置指引线的颜色为白色}},series: [{name: '',type: 'pie',radius: ['40%', '70%'],center: ['30%', '50%'], // 将中心位置设置为垂直和水平的中点data: dataWithPercentage,// 移除startAngle和endAngle,以显示完整的圆形},],};},},
};
</script><style scoped>
#main1 {width: 560px;height: 180px;
}
</style>

 2、初始化

initChart() {// 获取 DOM 元素,通过其 ID 获取到的元素将作为 ECharts 实例的容器const chartDom = document.getElementById('main1');// 初始化 ECharts 实例,传入上面获取的 DOM 元素this.chart = echarts.init(chartDom);// 获取图表的配置项,这些配置项用于定义图表的类型、数据、样式等const options = this.getChartOptions();// 设置图表的配置项// 这一步将配置项应用到 ECharts 实例中,渲染出图表this.chart.setOption(options);
}

 所有的基本上都是先获取容器盒子,然后初始化echarts,最后配置options

 3、配置解释

getChartOptions() {// 计算数据总量,用于计算百分比const total = this.data.reduce((sum, item) => sum + item.value, 0);// 为每个数据项计算百分比,并保留原有的 itemStyleconst dataWithPercentage = this.data.map(item => ({value: item.value,name: item.name,percentage: `${(item.value / total * 100).toFixed(1)}%`, // 计算并格式化百分比itemStyle: item.itemStyle // 保留原有的样式}));return {// 图表标题配置title: {text: '总数量', // 主标题文本subtext: '100%', // 副标题文本left: 'center', // 主标题水平居中top: '40%', // 主标题垂直位置left: '29%', // 主标题水平位置textAlign: 'center', // 主标题文本对齐方式textStyle: {fontSize: 18, // 主标题字体大小fontWeight: 'bold', // 主标题字体粗细color: '#ffffff' // 主标题字体颜色},subtextStyle: {fontSize: 17, // 副标题字体大小color: '#ffffff' // 副标题字体颜色}},// 图例配置legend: {orient: 'vertical', // 图例垂直排列right: '16%', // 图例水平位置top: 'center', // 图例垂直居中textStyle: {color: '#fff',  // 图例文字颜色fontSize: 12,   // 图例文字大小},// 格式化图例文字,显示名称和百分比formatter: (name) => {const item = dataWithPercentage.find(d => d.name === name);return item ? `${item.name} ${item.percentage}` : name;},},// 提示框配置tooltip: {trigger: 'item', // 鼠标悬停在项上触发提示框},// 标签配置label: {show: true, // 显示标签color: '#fff',  // 标签文字颜色position: 'outside', // 标签位置在图形外部formatter: ({ data }) => `${data.percentage}` // 标签只显示百分比},// 高亮显示配置emphasis: {label: {show: true, // 高亮时显示标签fontSize: 20, // 高亮时标签字体大小fontWeight: 'bold', // 高亮时标签字体粗细color: '#fff'  // 高亮时标签字体颜色},},// 标签线配置labelLine: {show: true, // 显示标签线lineStyle: {color: '#fff'  // 标签线颜色}},// 系列数据配置series: [{name: '', // 系列名称type: 'pie', // 图表类型为饼图radius: ['40%', '70%'], // 饼图的半径范围,内环到外环center: ['30%', '50%'], // 饼图中心位置,水平和垂直的百分比位置data: dataWithPercentage, // 使用带有百分比的数据// 移除 startAngle 和 endAngle 使饼图显示完整的圆形},],};
}

相关文章:

vue---echarts环形图

1、完整代码直接可以cv <template><div id"main1"></div> </template><script> import * as echarts from echarts; // import { mapState } from vuex; // import { Alarm_Device } from ../utils/api.js; export default {name: P…...

克服编程挫折:从Bug的迷宫中寻找出口与面对算法保持冷静的策略

在编程学习的道路上&#xff0c;挫折感无疑是每个学习者都必须面对的挑战之一。它们仿佛是一座座高墙&#xff0c;阻挡我们前进的步伐。然而&#xff0c;正如许多有经验的编程高手所证明的那样&#xff0c;挫折并不是终点&#xff0c;而是成长和进步的催化剂。本文将分享一些有…...

Flink之SQL client使用案例

Flink的执行模式有以下三种: 前提是我们已经开启了yarnsession的进程&#xff0c;在下图中可以看到启动的id也就是后续任务需要通过此id进行认证&#xff0c;以及任务分配的master主机。 这里启动时候会报错一个ERROR&#xff1a;org.apache.flink.shaded.curator.org.apache…...

实际开发中的模块化开发 - 应用到直播间

实际开发中的模块化开发 - 模块管理&#xff08;以直播间为例&#xff09;-CSDN博客 引言 在前面的两篇博客中&#xff0c;我们已经介绍了直播模块的简单结构&#xff0c;创建了模块管理器和模块抽象基类&#xff0c;并且通过模块化实现了两个小业务功能模块。接下来&#xf…...

EmguCV学习笔记 VB.Net 第5章 图像变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访…...

【初阶数据结构】顺序表与链表的比较(附题)

目录 一、顺序表和链表的区别&#xff08;其他链表存在缺陷&#xff0c;比较意义不大&#xff0c;这里用带头双向循环链表与顺序表进行比较&#xff09; 1.1插入、扩容与随机访问 二、缓存利用率的比较 2.1前置知识 详解及补充知识&#xff08;本文仅为比较顺序表及链表&am…...

git-20240822

目录 初始化仓库 Git init Git init project --bare 查看提交的记录 git log --prettyoneline 查看当前git远程库地址 git remote -v 查看详细提交记录 git log 撤出暂存区的文件 git reset HEAD file(.代表全部文件&#xff09; 提交数据到远程仓库 git config --global push.…...

【时时三省】c语言例题----华为机试题< 数字颠倒>

目录 1,题目 描述 输入描述: 输出描述: 示例1 2,代码...

【前缀和算法】--- 一维和二维前缀和模板

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 本文开始,博主开始讲解有关前缀和的算法&#xff0c;本篇博客我们先来了解一下有关前缀和的两个模板。 &#x1f3e0; 一维前缀和模板 &…...

有些信息注定会丢失

智能在分析问题、做出决策时&#xff0c;总是希望获取尽可能多的信息&#xff0c;以此更加准确地决策。然而&#xff0c;很遗憾的是&#xff0c;有一些信息注定会丢失&#xff0c;不可能获取完全的信息&#xff0c;而且即使能够获取&#xff0c;智能也不能完全利用。 这一点与…...

c#中Task.Run 和使用 Task 构造函数创建任务的区别

Task.Run 和使用 Task 构造函数创建任务是两种不同的方法&#xff0c;它们在某些方面有显著的区别&#xff1a; 启动方式: Task.Run 是一个静态方法&#xff0c;它立即启动一个任务并在后台执行指定的工作。它通常用于快速启动一个简单的后台任务。使用 Task 构造函数创建任务&…...

使用nginx做代理转发

需求1&#xff1a;通过监听服务器的80端口&#xff0c;将请求转发到另一台服务器的8070端口 打开nginx/nginx.conf文件 server {listen 80;server_name localhost;location /analys {proxy_pass http://10.xx.xx.xx:8070/;} }需求2&#xff1a;通过监听服务器的80端口&am…...

Java前端与后端交互:JSON与XML数据交换 - 掌握现代Web开发的核心技能

引言 随着互联网技术的不断进步&#xff0c;Web应用变得越来越复杂&#xff0c;从前端到后端的每一个环节都需要精心设计以保证良好的用户体验。在这个过程中&#xff0c;数据的传递扮演着至关重要的角色。无论是简单的表单提交还是复杂的API调用&#xff0c;都需要一种可靠的…...

网络攻击原理及过程

网络攻击原理表 攻击者 内容 攻击访问 攻击效果 攻击意图 黑客 挑战 间谍 用户命令 破坏信息 好奇 恐怖主义者 脚本或程序 本地访问 信息泄密 获取情报 公司职员 自治主体 远程访问 窃取服务 经济利益 职业犯罪分子 电磁泄露 拒绝服务 恐怖事…...

day30(8/16)——ansible

目录 一、回顾 1、mysql和python 1. mysql5.7 2. 可以使用pymysql非交互的管理mysql 2、mycat中间件 1. 独属于mysql主从的负载均衡策略 2.配置写主读从 3. 步骤 3.1 安装jdk 3.2 mycat 3.3 配置 3.4 启动和调试 二、运维自动化&#xff08;ansible&#xff09; 1、任务背…...

fastadmin 安装

环境要求&#xff0c;大家可以参考官方文档的&#xff0c;我这里使用的是phpstudy&#xff0c;很多已经集成了。 注意一点&#xff0c;PHP 版本&#xff1a;PHP 7.4 。 第二步&#xff1a;下载 下载地址&#xff1a;https://www.fastadmin.net/download.html 进入下载地址后…...

Unity动画模块 之 3D模型导入基础设置 Rig页签

​本文仅作笔记学习和分享&#xff0c;不用做任何商业用途本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 1.Rig页签 Rig 选项卡 - Unity 手册&#xff0c;rig是设置骨骼与替身系统的&#xff0c;工作流程如下 Avatar是什么…...

⭐️Python在Windows命令行(Command Prompt)运行Python脚本或交互式地执行Python代码详解

Python在Windows命令行&#xff08;Command Prompt&#xff09;运行Python脚本或交互式地执行Python代码详解 Python在Windows命令行&#xff08;Command Prompt&#xff09;运行Python脚本或交互式地执行Python代码详解一、安装Python二、运行Python脚本1. 打开命令行2. 导航到…...

Python | Leetcode Python题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter:class Node:def __init__(self):self.followee set()self.tweet list()def __init__(self):self.time 0self.recentMax 10self.tweetTime dict()self.user dict()def postTweet(self, userId: int, tweetId: int) ->…...

D. Beard Graph

https://codeforces.com/problemset/problem/165/D 主要是边转点 后面都是简单的线段树维护 我们维护ok标记,val值&#xff0c;黑&#xff08;1),白&#xff08;0&#xff09; id.okl.ok&r.ok id.vall.valr.val 注意特判如果两个点一样是0,如果dfn[u]1>dfn[v]就不…...

PingFangSC 字体技术深度解析:现代Web字体架构实践指南

PingFangSC 字体技术深度解析&#xff1a;现代Web字体架构实践指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC PingFangSC&#xff08;苹方-简&#…...

PyTorch实战(38)——深度学习模型可解释性

PyTorch实战&#xff08;38&#xff09;——深度学习模型可解释性0. 前言1. PyTorch 模型可解释性2. 训练手写数字分类器3. 可视化模型卷积核4. 可视化特征图小结系列链接0. 前言 在本专栏中&#xff0c;我们已经构建了多种深度学习模型来完成不同任务&#xff0c;包括手写数字…...

告别SIFT/ORB!用LoFTR+Transformer搞定低纹理场景的图片匹配(附Python实战代码)

低纹理场景图像匹配实战&#xff1a;LoFTR与Transformer的革新应用 在计算机视觉领域&#xff0c;图像特征匹配一直是三维重建、视觉定位等任务的基础环节。传统方法如SIFT、ORB依赖于特征检测器提取关键点&#xff0c;但在低纹理、重复图案或运动模糊场景中表现往往不尽如人意…...

计算机毕设 java 基于 Android 的医疗预约系统的设计与实现 SpringBoot 安卓智能医疗预约挂号平台 JavaAndroid 医患预约诊疗管理系统

计算机毕设 java 基于 Android 的医疗预约系统的设计与实现 53m069&#xff0c;末尾的数字和英文也要加上 &#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着信息技术的飞速发展和医疗需求的…...

零基础快速上手:免费开源H5编辑器h5maker完全指南

零基础快速上手&#xff1a;免费开源H5编辑器h5maker完全指南 【免费下载链接】h5maker h5编辑器类似maka、易企秀 账号/密码&#xff1a;admin 项目地址: https://gitcode.com/gh_mirrors/h5/h5maker 想要轻松制作专业级H5页面却苦于技术门槛&#xff1f;h5maker作为一…...

造相-Z-Image-Turbo亚洲美女LoRA创作实战:三个案例教你玩转AI绘画

造相-Z-Image-Turbo亚洲美女LoRA创作实战&#xff1a;三个案例教你玩转AI绘画 1. 认识造相-Z-Image-Turbo与亚洲美女LoRA 造相-Z-Image-Turbo是一款强大的AI图片生成模型&#xff0c;而亚洲美女LoRA则是专门针对亚洲人物特征优化的风格适配器。这个组合让普通用户也能轻松创作…...

Qwen3-32B-Chat API优化:降低OpenClaw任务Token消耗的5个技巧

Qwen3-32B-Chat API优化&#xff1a;降低OpenClaw任务Token消耗的5个技巧 1. 为什么需要关注Token消耗&#xff1f; 当我第一次在本地部署OpenClaw对接Qwen3-32B-Chat模型时&#xff0c;最让我震惊的不是它的推理能力&#xff0c;而是执行简单自动化任务后Token消耗的速度。一…...

OpenClaw知识库集成:Qwen3-VL:30B连接飞书文档中心

OpenClaw知识库集成&#xff1a;Qwen3-VL:30B连接飞书文档中心 1. 为什么需要智能文档助手 上个月整理季度技术文档时&#xff0c;我对着飞书里上百个分散的文档链接发愁——每次找资料都要在搜索框反复尝试关键词&#xff0c;遇到表格和图表更要逐页核对。直到发现OpenClaw能…...

Wireshark抓包实战:DHCP协议交互全流程解析(附常见问题排查)

Wireshark深度解析&#xff1a;DHCP协议交互全流程与实战排错指南 从零开始理解DHCP协议的本质 想象一下&#xff0c;当你带着笔记本电脑走进一家咖啡馆&#xff0c;连接Wi-Fi的瞬间&#xff0c;设备就自动获得了上网所需的所有配置——IP地址、子网掩码、默认网关、DNS服务器。…...

FindSomething:革新性网页智能信息提取工具完全指南

FindSomething&#xff1a;革新性网页智能信息提取工具完全指南 【免费下载链接】FindSomething 基于chrome、firefox插件的被动式信息泄漏检测工具 项目地址: https://gitcode.com/gh_mirrors/fi/FindSomething 在数字时代&#xff0c;网页中隐藏的敏感信息和数据模式往…...