Echarts饼图-实现今日进度-动态图

效果预览

本次实现的是一个饼图,蓝色科技背景色,星球转动效果 + 进度显示。

GIF 2024-6-21 16-20-50

构建一个动态饼图,采用ECharts,背景为蓝色科技风,有星球转动效果。通过echarts.init初始化,设置图表尺寸和背景色,配置option对象含标题、颜色等。利用series定义渐变色并自定义渲染,通过renderItem绘制弧线和圆点。getCirlPoint函数计算坐标,draw函数更新角度实现动画。代码包括图表初始化、系列配置、动画逻辑等关键部分。完整代码可在链接处下载。

实现思路

大致实现思路:

  1. 初始化 ECharts 实例: 使用 echarts.init 方法初始化图表,并将其绑定到页面上的一个元素。
  2. 定义样式和尺寸: 设置图表容器 .EChartBox 的宽度和高度,以及图表的背景色。
  3. 配置图表选项: 创建一个 option 对象,配置图表的标题、图例、提示框、颜色等。
  4. 设置标题: 使用 title 字段定义图表标题的样式和位置。
  5. 隐藏图例和提示框: 设置 legendtooltipfalse 或相应的配置以隐藏或自定义显示。
  6. 定义颜色数组: 使用 colors 数组定义图表使用的颜色。
  7. 创建渐变色: 定义 innerRingColor 对象来创建渐变色效果,这将应用于饼图的一部分。
  8. 配置系列(Series): 在 series 数组中定义多个系列,每个系列代表饼图的一部分或一个特定的视觉效果。
  9. 自定义渲染: 使用 renderItem 方法自定义绘制饼图的某些部分,例如绘制弧线和圆点。
  10. 计算圆上点的坐标: 实现 getCirlPoint 函数,根据圆心坐标、半径和角度计算圆上点的坐标。
  11. 实现动画效果: 创建 draw 函数来更新图表的角度 angle,使用 setInterval 定时调用 draw 函数来实现旋转动画。
  12. 设置图表选项: 使用 myChart.setOption 方法应用配置项到图表。
  13. 启动动画: 在页面加载完成后,首先调用 draw 函数一次,然后使用 setTimeout 延迟启动动画循环。
  14. 停止动画: 在动画不需要时,可以清除 setInterval 设置的定时器。

整体来看,代码实现了一个具有动画效果的图表,其中包含了多个自定义系列,用于展示不同类型的请假天数。图表的图例根据 series 中的 name 自动生成,并通过 legend 配置项进行样式设置。动画效果通过改变角度 angle 并重新设置图表选项来实现。

关键代码展示

在您提供的代码中,关键部分主要涉及 ECharts 图表的初始化、配置和动画效果的实现。以下是关键代码的总结:

1. 图表初始化

var myChart = echarts.init(document.getElementById('ECharts'));

2. 配置项设置

let option = {// ... 全局配置项,如标题、图例、提示框等series: [// ... 系列数据配置]
};

3. 饼图系列配置

series: [{name: '',type: 'pie',// ... 其他饼图配置data: [// ... 数据项],label: {// ... 标签配置},},// ... 其他系列配置
]

4. 自定义渲染函数 renderItem

{name: 'ring5',type: 'custom',coordinateSystem: 'none',renderItem: function (params, api) {// ... 绘制弧线或圆点的逻辑},data: [0],
},

5. 计算圆上点的坐标的辅助函数

function getCirlPoint(x0, y0, r, angle) {let x1 = x0 + r * Math.cos((angle * Math.PI) / 180);let y1 = y0 + r * Math.sin((angle * Math.PI) / 180);return {x: x1,y: y1,};
}

6. 动画效果实现

function draw() {angle = angle + 3; // 更新角度myChart.setOption(option, true); // 应用配置项更新图表
}// 启动动画
draw();
setTimeout(function () {timerId = setInterval(function () {draw();}, 100);
}, 500);

7. 应用配置项到图表

myChart.setOption(option);

这些关键代码片段概述了如何使用 ECharts 创建一个带有动画效果的饼图。动画通过改变角度 angle 并重新设置图表选项来实现。自定义渲染函数 renderItem 允许开发者绘制自定义图形,如弧线和圆点。辅助函数 getCirlPoint 用于计算圆上点的坐标,这对于绘制弧线和圆点至关重要。

完整代码

点我下载完整

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

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

相关文章

疯狂刷题python版 | 使用PySide6自制刷题软件【源码+解析】

疯狂刷题python版 | 使用PySide6自制刷题软件【源码解析】 一、前言二、思考三、软件设计四、软件实现(一)使用QWebEngineView控件通过JavaScript代码和chrome内核进行数据交互和逻辑控制(二)用户分别通过浏览器 GUI和PySide6 GUI…

C++中的noexcept

在C11中,引入了noexcept关键字,用于指定函数是否会抛出异常。它是C语言中处理异常安全的重要工具之一。通过明确声明哪些函数不会抛出异常,noexcept可以帮助优化代码性能,并提高程序的稳定性和可维护性。 1. 什么是noexcept&…

PostgreSQL中 FETCH FIRST ... WITH TIES 是查询结果中限制返回的行数

在 PostgreSQL 中,FETCH FIRST … WITH TIES 是一个在查询结果中限制返回的行数,但同时确保与最后一行具有相同排序值的所有行都被包括进来的子句。这通常与 ORDER BY 子句一起使用。 当您使用 FETCH FIRST n ROWS ONLY 时,您只会得到前 n 个…

Quartz的简单使用:实现简单的定时任务

在 Quartz 中&#xff0c;你可以定义和调度多个 Job。每个 Job 都有对应的 JobDetail 和 Trigger。 1. 添加依赖 确保你的项目中包含 Quartz 的依赖。例如&#xff0c;如果你使用的是 Maven&#xff0c;可以在 pom.xml 中添加以下依赖&#xff1a; <dependency><gr…

四,SSM整合-前后端分离(实现分页+前后端校验)

分页与校验 实现功能07-分页显示列表需求分析/图解思路分析代码实现完成测试 实现功能08-带条件查询分页显示列表需求分析/图解思路分析代码实现 实现功能09-添加家居表单前端校验需求分析/图解思路分析代码实现 实现功能10-添加家居表单后端校验需求分析/图解思路分析代码实现…

zdppy_amauth如何测试批量获取用户绑定的所有权限

简单的思路 1、添加用户 2、添加角色 3、绑定用户和角色的关系 4、添加3个权限 5、绑定角色和权限关系&#xff0c;给角色绑定2个权限 6、查询用户绑定的所有权限 7、删除用户 8、删除角色 9、删除权限 10、解绑用户的所有角色 11、解绑角色的所有权限 第一步&#xff1a;改造…

开源【汇总】

开源【汇总】 前言版权推荐开源【汇总】最后 前言 先占个位 2024-6-21 21:29:33 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net 禁止其他平台发…

华为海思CPU解读

安全可靠CPU测评结果&#xff08;华为海思篇&#xff09; 中国信息安全测评中心于2024年5月20日发布安全可靠测评结果公告&#xff08;2024年第1号&#xff09;&#xff0c;公布依据《安全可靠测评工作指南&#xff08;试行&#xff09;》的测评结果&#xff0c;自发布起有效期…

可视化数据科学平台在信贷领域应用系列七:自动机器学习(下篇)

在当今金融科技迅速发展的时代&#xff0c;自动机器学习&#xff08;AutoML&#xff09;逐步成为了信贷风控领域的重要工具。随着大数据和人工智能技术的进步以及信贷风险环境的快速变化&#xff0c;传统人工建模模式的时效性已经难以应对复杂多变的挑战。自动机器学习框架将数…

海外版coze前端代码助手

定位 解决前端同事的开发问题 参数配置 测试 支持 最屌的大模型及语音播报。 体验地址 海外版前端代码助手 需要魔法才能体验油

【快乐星球game】

编写游戏程序代码是一个复杂的过程&#xff0c;涉及到游戏设计、编程、图形设计、音效制作等多个方面。以下是一个非常简化的示例&#xff0c;用于展示如何开始编写一个基本的游戏程序。我们将使用Python语言和一个名为Pygame的库来创建一个简单的游戏。 首先&#xff0c;确保你…

2024.6最最新版MySQL数据库安装(保姆级教程,不懂你捶我)

1.MySQL数据库下载 1.打开MySQL官网 如下页面 2.下翻网页到最底部,找到Download,点击第一个MySQL Community Server 3.选择自己需要的版本以及系统的MySQL: 4.跳转页面会有一个登录/注册页面,这里我们不鸟他,直接开始下载 2.MySQL数据库安装 1.双击我们刚刚下载的安装包 2.勾…

编码RNA Terc-53和透明质酸受体Hmmr可调节小鼠的衰老

近期&#xff0c;厦门大学王耿教授团队在Protein & Cell&#xff08;IF21.1&#xff09;上发表题为“Noncoding RNA Terc-53 and hyaluronan receptor Hmmr regulate ageing in mice.”的研究。研究团队构建了一系列Terc-53小鼠模型&#xff0c;发现Terc-53小鼠表现出与年龄…

艾尔登法环攻略教程 教你怎么达成怎么进入DLC的前置条件

《艾尔登法环》是一款黑暗幻想风开放世界角色扮演动作游戏&#xff0c;该游戏让玩家走进辽阔的场景与地下迷宫探索未知&#xff0c;挑战困难重重的险境&#xff0c;同时体验登场角色之间的利害关系谱成的群像剧。其广阔的开放世界、深邃的剧情探索、极具挑战性的战斗系统&#…

stable diffusion 模型融合

【抛砖引玉】GhostMixV2.0的制作过程及关于Checkpoint模型融合的一点经验 - 知乎大家好,我是Ghost_Shell,也是GhostMix的作者。本来想写一篇文章整体介绍一下模型,一些你们可能没察觉到,但我非常固执的理念,也算是模型的特性。结果发现写太长了,就分开两部分,第一部分是…

关于Notebook环境的安装记录

这是Windows下的&#xff0c;由于自己用的miniconda&#xff0c;所以很多都是自己手动搞的。 1. 首先执行conda install jupyter notebook&#xff0c;它能创建一个jupyter notebook的快捷方式&#xff08;当然你也可以自己创建这个快捷方式&#xff09;。 2. 但是不习惯no…

JExcel API使用笔记

JExcel API使用笔记 JExcel是一个开源的支持excel的java类库&#xff0c;广泛利用其api来生成excel报表 API基本使用 1.创建excel文件 workbook Workbook.createWorkbook(file);//传入file文件2.创建sheet页 WritableSheet sheet workbook.createSheet("记录表&quo…

【C++ | 重载运算符】一文弄懂C++运算符重载,怎样声明、定义运算符,重载为友元函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-21 2…

银河麒麟V10安装docker和docker-compose

1. 说明 系统镜像使用的是Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso如果是在VMware中安装这个系统&#xff0c;需选择Ubuntu&#xff0c;如果选Centos会有问题。 尝试使用在线方式安装docker&#xff0c;报了很多错误&#xff0c;比较麻烦&#xff0c;建议使用离…

slam移动机器人预测n秒后的里程数据

slam移动机器人预测n秒后的里程数据 为了实现这个功能,需要完成以下几个步骤: 订阅/odom话题并获取当前和上一时刻的里程计数据。计算两次里程计数据之间的位置和角度的偏移量。计算时间间隔dt。使用运动模型计算当前的速度vx, vy, vth。预测3秒后的位置和角度。将预测的位置…