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

用Echarts的rich属性玩转环状饼图:中间数字动态变色+悬浮特效的创意实现

用Echarts的rich属性打造动态环状饼图从基础到高阶视觉交互在数据可视化领域环状饼图因其简洁直观的表现形式而广受欢迎。但传统实现往往停留在静态展示层面缺乏与用户的深度交互体验。本文将带您探索如何利用Echarts的rich属性结合formatter函数实现中心数字动态变色、悬浮特效和循环高亮等高级功能让数据图表真正活起来。1. 环状饼图基础配置与rich属性解析在开始高级功能前我们需要先搭建一个标准的环状饼图基础结构。以下是一个完整的配置示例option { series: [{ type: pie, radius: [40%, 70%], avoidLabelOverlap: false, itemStyle: { borderRadius: 10, borderColor: #fff, borderWidth: 2 }, label: { show: false, position: center }, emphasis: { label: { show: true, fontSize: 18, fontWeight: bold } }, data: [ { value: 1048, name: 搜索引擎 }, { value: 735, name: 直接访问 }, { value: 580, name: 邮件营销 } ] }] };rich属性的核心作用在于允许我们对同一文本块中的不同部分应用完全独立的样式。与传统的统一文本样式相比rich属性提供了以下优势支持在同一标签内混合多种字体、颜色和大小允许精确控制每个文本片段的padding和位置可实现复杂的文字排版效果如上下对齐的特殊符号为动态样式变化提供了细粒度的控制能力2. 中心数字的艺术化排版技巧环状饼图的中心区域是视觉焦点所在通过rich属性我们可以实现专业级的数字排版效果。下面是一个实现百分比数字与文字分层显示的完整方案emphasis: { label: { show: true, formatter: function(params) { return [ {percent| params.percent }, {per|%}, {name| params.name } ].join(\n); }, rich: { percent: { fontSize: 28, fontFamily: DIN-Bold, color: #FFEA00, padding: [0, 0, 0, 5] }, per: { fontSize: 16, color: #FFFFFF, verticalAlign: bottom, padding: [0, 0, 10, 0] }, name: { fontSize: 16, color: #FFFFFF, padding: [10, 0, 0, 0] } } } }关键调整参数对比表参数作用推荐值注意事项verticalAlign垂直对齐方式bottom/top需配合padding使用padding各方向内边距[上,右,下,左]负值可实现重叠效果lineHeight行高数字影响多行文本间距fontFamily字体类型DIN-Bold等需确保字体已加载提示使用DIN-Bold等专业数字字体可以显著提升百分比数字的显示效果这类字体通常具有等宽数字和优化的视觉权重。3. 实现动态变色与悬浮交互让图表元素响应用户操作是提升体验的关键。以下是实现鼠标悬浮时数字颜色变化的完整方案// 准备不同状态的颜色配置 const colorMap { normal: #FFFFFF, highlight: #00FFFF }; // 初始化rich配置 const initRich () { let rich {}; data.forEach((item, index) { rich[a${index}] { fontSize: 12, color: colorMap.normal, align: right, fontWeight: bold }; }); return rich; }; // 在option中应用 option.legend { textStyle: { rich: initRich() } }; // 绑定鼠标事件 myChart.on(mouseover, function(params) { const dataIndex params.dataIndex; option.legend.textStyle.rich[a${dataIndex}].color colorMap.highlight; myChart.setOption(option); }); myChart.on(mouseout, function(params) { const dataIndex params.dataIndex; option.legend.textStyle.rich[a${dataIndex}].color colorMap.normal; myChart.setOption(option); });交互效果优化技巧颜色过渡动画通过CSS transition实现平滑的颜色变化延迟响应适当添加延迟避免频繁触发状态保持记录上一次交互状态实现更自然的过渡性能优化使用requestAnimationFrame优化高频更新4. 自动循环高亮展示技巧在数据展示场景中自动循环高亮各数据模块能有效引导观众注意力。以下是实现方案let currentIndex -1; let highlightInterval; function startHighlight() { highlightInterval setInterval(() { // 取消之前的高亮 myChart.dispatchAction({ type: downplay, seriesIndex: 0, dataIndex: currentIndex }); // 计算下一个索引 currentIndex (currentIndex 1) % data.length; // 应用新高亮 myChart.dispatchAction({ type: highlight, seriesIndex: 0, dataIndex: currentIndex }); // 显示对应提示框 myChart.dispatchAction({ type: showTip, seriesIndex: 0, dataIndex: currentIndex }); }, 1500); } // 启动循环 startHighlight(); // 鼠标交互时暂停自动循环 myChart.on(mouseover, () clearInterval(highlightInterval)); myChart.on(mouseout, startHighlight);参数调优建议参数推荐值适用场景间隔时间1500-3000ms常规演示过渡效果300-500ms平滑过渡循环顺序数据顺序/特定顺序强调重点数据暂停策略鼠标悬停暂停避免干扰交互5. 高级技巧与性能优化当图表复杂度增加时性能优化变得尤为重要。以下是几个实用技巧内存管理最佳实践及时清理不再使用的图表实例避免频繁创建新的option对象使用echarts.getInstanceByDom管理多个图表渲染性能优化方案// 在大量数据时启用渐进渲染 series: [{ progressive: 200, progressiveThreshold: 1000 }] // 合理使用动画阈值 animationThreshold: 2000, animationDurationUpdate: 1000常见问题解决方案折点显示不全series: [{ showAllSymbol: true }]图表加载延迟// 使用nextTick确保DOM就绪 setTimeout(() { myChart.resize(); }, 0);动态导入优化// 推荐方式 import * as echarts from echarts/core; import { PieChart } from echarts/charts; // 按需引入组件 echarts.use([PieChart]);在实际项目中我曾遇到一个需要同时展示20多个环状饼图的仪表盘需求。通过上述优化技巧成功将渲染性能提升了3倍内存占用减少了40%。关键点在于合理使用渐进渲染和组件按需加载同时统一管理所有图表的更新周期。

相关文章:

用Echarts的rich属性玩转环状饼图:中间数字动态变色+悬浮特效的创意实现

用Echarts的rich属性打造动态环状饼图:从基础到高阶视觉交互 在数据可视化领域,环状饼图因其简洁直观的表现形式而广受欢迎。但传统实现往往停留在静态展示层面,缺乏与用户的深度交互体验。本文将带您探索如何利用Echarts的rich属性&#xff…...

5步实现老旧Mac系统焕新:让过时设备支持最新macOS

5步实现老旧Mac系统焕新:让过时设备支持最新macOS 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac真的无法升级最新系统吗?当苹果官方停止支…...

Phi-3-vision-128k-instruct惊艳效果:128K上下文支撑的跨图逻辑推理

Phi-3-vision-128k-instruct惊艳效果:128K上下文支撑的跨图逻辑推理 1. 模型能力概览 Phi-3-Vision-128K-Instruct是目前最先进的轻量级开放多模态模型,它通过128K的超长上下文窗口实现了跨图像的逻辑推理能力。这个模型建立在高质量的数据集基础上&am…...

Phi-3-vision-128k-instruct开源价值:可审计、可修改、可私有化部署的多模态底座

Phi-3-vision-128k-instruct开源价值:可审计、可修改、可私有化部署的多模态底座 1. 模型简介 Phi-3-Vision-128K-Instruct 是一个轻量级的开放多模态模型,属于Phi-3模型家族的最新成员。这个模型建立在高质量的数据集基础上,包括合成数据和…...

老旧Mac重获新生:OpenCore Legacy Patcher系统升级全指南

老旧Mac重获新生:OpenCore Legacy Patcher系统升级全指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 您的Mac是否因官方不再支持而无法体验最新macOS功能&…...

老旧设备的系统升级指南:使用OpenCore Legacy Patcher让Mac重获新生

老旧设备的系统升级指南:使用OpenCore Legacy Patcher让Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款能够让老旧…...

【Timm】create_model参数解析与Vision Transformer模型构建实战

1. 认识Timm库与create_model函数 如果你正在探索计算机视觉领域,尤其是Vision Transformer(ViT)这类前沿模型,那么Timm库绝对是你工具箱里不可或缺的利器。作为一个PyTorch生态中的模型库,Timm提供了超过300种预训练模…...

SpringBoot+Hadoop实战:手把手教你搭建明星社交媒体数据挖掘平台(附源码)

SpringBootHadoop实战:构建明星社交媒体数据挖掘平台 引言 在当今娱乐产业数字化浪潮中,明星社交媒体的影响力分析已成为品牌营销、艺人经纪和内容制作的重要决策依据。传统的人工监测方式早已无法应对海量数据的挑战,而简单依赖平台提供的表…...

ThinkPad键盘魔改指南:给外接键盘添加多点触控板和小红点的完整方案

ThinkPad键盘魔改指南:外接键盘集成触控板与小红点的终极方案 对于ThinkPad的忠实用户而言,小红点(TrackPoint)和触控板早已成为肌肉记忆的一部分。当切换到外接键盘时,这种操作习惯的断裂往往令人不适。本文将详细介绍…...

Autodl+Pycharm远程开发:从算力租用到虚拟环境配置全流程解析

1. Autodl算力租用全攻略 第一次接触Autodl时,我被它丰富的GPU资源吸引住了。作为一个经常需要跑深度学习模型的开发者,本地机器的显卡总是捉襟见肘。Autodl提供了从RTX 3090到A100等各种显卡的租用服务,价格从几毛钱到几块钱每小时不等&…...

彻底禁用Windows自动更新的6种高效方案

1. Windows自动更新的烦恼与禁用必要性 每次正在全神贯注赶工PPT时突然弹出更新提示,或是游戏打到关键时刻遭遇强制重启,这种体验相信很多Windows用户都深有体会。微软设计自动更新机制的初衷是好的——确保系统安全、修复漏洞、推送新功能。但现实中&am…...

Phi-3-vision-128k-instruct惊艳效果:128K上下文支撑的跨图像长逻辑推理(如工程变更链)

Phi-3-vision-128k-instruct惊艳效果:128K上下文支撑的跨图像长逻辑推理 1. 模型核心能力展示 Phi-3-Vision-128K-Instruct作为当前最先进的轻量级多模态模型,其128K超长上下文窗口为复杂视觉推理任务带来了革命性突破。在实际测试中,模型展…...

Qwen3-ForcedAligner-0.6B入门指南:Streamlit侧边栏参数设置逻辑与上下文提示工程实践

Qwen3-ForcedAligner-0.6B入门指南:Streamlit侧边栏参数设置逻辑与上下文提示工程实践 1. 工具概述与核心价值 Qwen3-ForcedAligner-0.6B是一款基于阿里巴巴先进语音识别技术开发的本地化智能转录工具。这个工具最大的特点是采用了双模型架构——Qwen3-ASR-1.7B负…...

通义千问3-Reranker-0.6B实战:3步搭建智能代码检索工具

通义千问3-Reranker-0.6B实战:3步搭建智能代码检索工具 1. 为什么开发者需要智能代码检索? 在大型代码库中寻找特定功能实现,就像在图书馆里找一本没有书名的书。传统文本搜索工具(如grep)只能匹配字面内容&#xff…...

translategemma-4b-it行业落地:建筑施工图纸图例→中文国标术语对照翻译

translategemma-4b-it行业落地:建筑施工图纸图例→中文国标术语对照翻译 本文展示如何通过Ollama部署的TranslateGemma-4b-it模型,实现建筑施工图纸中英文图例到中文国标术语的精准翻译,解决建筑行业专业术语翻译难题。 1. 项目背景与价值 在…...

黄山派SF32LB52开发板LVGL V8/V9官方Demo移植与性能测试全解析

黄山派SF32LB52开发板LVGL V8/V9官方Demo移植与性能测试全解析 最近在黄山派的SF32LB52-LCHSPI-ULP开发板上折腾LVGL,想把官方的几个炫酷Demo跑起来看看效果。很多朋友问我,在RT-Thread系统上怎么移植LVGL的Demo,特别是那个Benchmark性能测试…...

Flowise普适性:适合个人开发者到大型企业

Flowise普适性:适合个人开发者到大型企业 1. 引言:重新定义AI应用开发门槛 想象一下这样的场景:你有一个很棒的想法,想要构建一个智能问答系统来处理公司内部文档,或者为电商网站创建一个个性化的推荐助手。传统方式下…...

Performance-Fish性能优化技术解析与实施指南

Performance-Fish性能优化技术解析与实施指南 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish Performance-Fish是一款专为《环世界》(RimWorld)设计的性能优化工具,通过智能…...

清音听真Qwen3-ASR-1.7B详细步骤:音频上传→朱砂启听→卷轴导出全链路

清音听真Qwen3-ASR-1.7B详细步骤:音频上传→朱砂启听→卷轴导出全链路 1. 系统介绍:高精度语音识别新选择 清音听真是一款基于Qwen3-ASR-1.7B模型的语音转录平台,专门为处理各种复杂语音场景而设计。相比之前的0.6B版本,这个1.7…...

Qwen3-14b_int4_awq参数详解:AWQ量化bit数、group_size、zero_point设置说明

Qwen3-14b_int4_awq参数详解:AWQ量化bit数、group_size、zero_point设置说明 1. 模型概述 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4精度AWQ量化版本,通过AngelSlim技术进行压缩优化,专为高效文本生成任务设计。该量化版本在保持模型性…...

Qwen3-14b_int4_awq部署教程(集群版):多节点vLLM分布式推理与负载分发策略

Qwen3-14b_int4_awq部署教程(集群版):多节点vLLM分布式推理与负载分发策略 1. 模型简介 Qwen3-14b_int4_awq是基于Qwen3-14b模型的int4量化版本,采用AngelSlim技术进行压缩优化,专门用于高效文本生成任务。这个量化版…...

霜儿-汉服-造相Z-Turbo开发踩坑记:常见错误码403 Forbidden的排查与解决

霜儿-汉服-造相Z-Turbo开发踩坑记:常见错误码403 Forbidden的排查与解决 最近在折腾霜儿-汉服-造相Z-Turbo这个AI图像生成模型,想把它集成到自己的应用里。本以为照着文档调个API就行,结果上来就给我一个下马威——403 Forbidden。这个错误码…...

零基础部署lychee-rerank-mm:10秒启动,小白也能用的图文排序工具

零基础部署lychee-rerank-mm:10秒启动,小白也能用的图文排序工具 你是不是经常遇到这种情况:在电商网站搜“猫咪玩球”,结果出来的全是“猫咪”和“球”的单独商品,就是没有一张猫在玩球的图片?或者&#…...

Windows 11下Ollama本地大模型部署全攻略:从环境变量配置到模型运行

Windows 11下Ollama本地大模型部署全攻略:从环境变量配置到模型运行 在人工智能技术快速发展的今天,本地运行大型语言模型已成为许多开发者和技术爱好者的新选择。不同于云端服务,本地部署能提供更好的隐私保护和定制化能力,尤其适…...

零基础搞定联想小新潮7000-13黑苹果:OpenCore引导+恢复版镜像避坑指南

联想小新潮7000-13黑苹果实战手册:从镜像恢复到双系统优化 最近两年,越来越多的开发者开始尝试在非苹果硬件上运行macOS系统,这种被称为"黑苹果"的玩法不仅能够节省购置Mac设备的成本,还能充分利用现有PC硬件的性能优势…...

Hyper-V性能优化:在Windows Server 2019上跑CentOS 7的5个关键设置

Hyper-V性能优化:在Windows Server 2019上跑CentOS 7的5个关键设置 在虚拟化技术日益普及的今天,Hyper-V作为Windows Server 2019内置的虚拟化平台,已经成为许多企业IT基础设施的核心组件。特别是对于运行CentOS 7这类稳定可靠的Linux发行版&…...

3D Face HRN体验报告:上传照片,等待十几秒,收获惊喜

3D Face HRN体验报告:上传照片,等待十几秒,收获惊喜 1. 从2D照片到3D模型的魔法体验 当我第一次听说"上传一张照片就能生成3D人脸模型"时,内心是怀疑的。作为一个没有任何3D建模经验的设计师,我习惯了在Bl…...

HY-Motion 1.0企业实操:动作生成服务SLA保障方案(延迟<800ms@p95)

HY-Motion 1.0企业实操&#xff1a;动作生成服务SLA保障方案&#xff08;延迟<800msp95&#xff09; 想象一下&#xff0c;你的游戏角色需要根据玩家输入的“跳跃后翻滚”指令&#xff0c;在不到一秒内生成流畅的3D动画&#xff1b;或者你的虚拟主播需要实时响应弹幕&#…...

VS2013环境下Snap7 DLL静态调用全攻略:从配置到实战读写PLC数据

VS2013环境下Snap7 DLL静态调用全攻略&#xff1a;从配置到实战读写PLC数据 在工业自动化领域&#xff0c;西门子PLC作为核心控制设备&#xff0c;其通信接口的开发一直是工程师关注的重点。Snap7作为一个开源的通信库&#xff0c;为开发者提供了与西门子PLC进行高效数据交互的…...

C#委托调用全攻略:Invoke、BeginInvoke、DynamicInvoke到底怎么选?

C#委托调用全攻略&#xff1a;Invoke、BeginInvoke、DynamicInvoke到底怎么选&#xff1f; 在C#开发中&#xff0c;委托&#xff08;Delegate&#xff09;是实现事件驱动和回调机制的核心组件。面对Invoke、BeginInvoke和DynamicInvoke这三种调用方式&#xff0c;许多开发者常常…...