ECharts饼图(环形):如何展示数据占比和结构变化

echarts饼图(环形):如何展示数据占比和结构变化

ECharts饼图(环形):如何展示数据占比和结构变化

ECharts是一款基于JavaScript的数据可视化库,它提供了多种图表类型,包括折线图、柱状图、散点图、地图等。其中,饼图是一种常用的图表类型,可以用于展示数据的占比和结构变化。本文将介绍如何使用ECharts饼图来展示数据占比和结构变化,并提供具体的代码示例。

一、数据格式

在使用ECharts饼图之前,需要准备好数据,并将数据格式转换为ECharts所需的格式。在饼图中,数据格式通常采用以下方式:

data:[  {name:'数据1',value:100},  {name:'数据2',value:200},  {name:'数据3',value:300},  {name:'数据4',value:400}]

其中,name表示数据的名称,value表示数据的值。需要注意的是,数据中的value值一般是数值型的,如果是字符串型的话需要使用parseInt()或parseFloat()进行转换。

二、基本饼图

下面演示如何使用ECharts绘制基本的饼图。首先需要引入ECharts库和主题,创建一个DOM元素用于显示图表,并初始化一个ECharts实例。然后,设置饼图的基本配置,包括标题、图例、颜色等。最后,将数据传入到饼图中进行渲染。

HTML代码:

JavaScript代码:

// 引入ECharts库和主题// 创建一个DOM元素用于显示图表var chart1 = echarts.init(document.getElementById('pie1'),'macarons');// 设置饼图的基本配置var option1 = {  title: {    text: '基本饼图示例',    subtext: '数据来自Demo',    x: 'center'  },  tooltip: {    trigger: 'item',    formatter: "{a} 
{b}: {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data:['数据1','数据2','数据3','数据4'] }, series: [ { name:'饼图', type:'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:[ {value:100, name:'数据1'}, {value:200, name:'数据2'}, {value:300, name:'数据3'}, {value:400, name:'数据4'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ]};// 将数据传入到饼图中进行渲染chart1.setOption(option1);

上面的代码中,设置了图表标题、数据提示、图例、饼图半径、数据等。该饼图的效果如下图所示:

ECharts饼图(环形):如何展示数据占比和结构变化

三、环形饼图

环形饼图是基本饼图的一种变体,它可以将饼图中心部分挖空,形成一个环形的图形。在ECharts中,可以设置饼图的innerRadius属性来实现这一效果。下面的示例展示如何使用ECharts绘制环形饼图。

图像转图像AI 图像转图像AI

利用AI轻松变形、风格化和重绘任何图像

图像转图像AI 65 查看详情 图像转图像AI

HTML代码:

JavaScript代码:

// 创建一个DOM元素用于显示图表var chart2 = echarts.init(document.getElementById('pie2'),'macarons');// 设置饼图的基本配置var option2 = {  title: {    text: '环形饼图示例',    subtext: '数据来自Demo',    x: 'center'  },  tooltip: {    trigger: 'item',    formatter: "{a} 
{b}: {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data:['数据1','数据2','数据3','数据4'] }, series: [ { name:'饼图', type:'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:[ {value:100, name:'数据1'}, {value:200, name:'数据2'}, {value:300, name:'数据3'}, {value:400, name:'数据4'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, // 设置内半径 innerRadius:'50%' } ]};// 将数据传入到饼图中进行渲染chart2.setOption(option2);

上述代码与基本饼图的代码几乎相同,只是在series中设置了innerRadius属性。该环形饼图的效果如下图所示:

ECharts饼图(环形):如何展示数据占比和结构变化

四、数据结构变化

饼图除了可以展示数据的占比,还可以用于展示数据结构的变化。在ECharts中,可以通过对数据的修改和重新渲染来实现这一效果。下面的示例演示了如何在饼图中对数据进行操作,完成数据结构变化的效果展示。

HTML代码:

JavaScript代码:

// 数据源var data1 = [  {value:100, name:'数据1'},  {value:200, name:'数据2'},  {value:300, name:'数据3'},  {value:400, name:'数据4'}];var data2 = [  {value:450, name:'数据5'},  {value:250, name:'数据6'},  {value:200, name:'数据7'},  {value:150, name:'数据8'}];// 创建一个DOM元素用于显示图表var chart3 = echarts.init(document.getElementById('pie3'),'macarons');// 设置饼图的基本配置var option3 = {  title: {    text: '数据结构变化示例',    subtext: '数据来自Demo',    x: 'center'  },  tooltip: {    trigger: 'item',    formatter: "{a} 
{b}: {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data:['数据1','数据2','数据3','数据4'] }, series: [ { name:'饼图', type:'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, label: { normal: { show: false, position: 'center' }, emphasis: { show: true, textStyle: { fontSize: '30', fontWeight: 'bold' } } }, labelLine: { normal: { show: false } }, data:data1, itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, innerRadius:'50%' } ]};// 将数据1传入到饼图中进行渲染chart3.setOption(option3);// 点击事件chart3.on('click', function (params) { // alert(params.name); if(params.name=='数据1'){ option3.legend.data = ['数据5','数据6','数据7','数据8']; option3.series[0].data = data2; }else{ option3.legend.data = ['数据1','数据2','数据3','数据4']; option3.series[0].data = data1; } chart3.setOption(option3);});

上述代码中,我们定义了两个数据源data1和data2,它们分别表示两个不同的数据结构。在饼图中设置了一个点击事件,当点击饼图时,会根据点击的数据名称进行判断,如果点击的是data1中的数据1,则将legend和series中的数据修改为data2数据结构,否则将其修改为data1数据结构。最后,调用setOption()方法将修改后的图表重新渲染。该数据结构变化的效果如下图所示:

ECharts饼图(环形):如何展示数据占比和结构变化

综上,本文介绍了如何使用ECharts绘制饼图,并提供了具体的代码示例。除了基本饼图和环形饼图之外,还演示了如何在饼图中对数据进行操作,完成数据结构变化的效果展示。读者可以根据自己的需求和数据格式,进行相应的修改和优化。

以上就是ECharts饼图(环形):如何展示数据占比和结构变化的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/508907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 23:48:16
下一篇 2025年11月8日 23:49:34

相关推荐

  • JavaScript数据可视化进阶

    答案是%ignore_a_1%进阶需以叙事为核心,结合工具深度与交互设计。首先理解场景,选用D3.js、Chart.js或ECharts等工具,挖掘其数据驱动、动态更新与插件扩展能力;其次优化性能,通过Web Workers、LTTB算法和Canvas渲染处理大规模数据;再者增强交互,实现跨图表联动…

    2025年12月6日 web前端
    000
  • 如何从 ECharts 中获取缩放后的 X 轴标签?

    在使用 echarts 的 datazoom 组件进行数据缩放后,获取当前缩放范围内 x 轴的标签值是一个常见的需求。本文将介绍如何通过 echarts 提供的 api,在 `datazoom` 事件中获取缩放后的 x 轴标签数据,并提供示例代码帮助你快速实现该功能。 ### 获取缩放后的 X 轴标…

    2025年12月6日 web前端
    000
  • 获取 ECharts dataZoom 缩放后的 xAxis 标签

    本文档介绍了在使用 echarts 的 datazoom 组件进行缩放后,如何获取当前缩放范围内 xaxis 标签值的方法。通过监听 `datazoom` 事件并结合 `getoption()` 方法,我们可以提取出缩放后的 xaxis 数据,从而实现对缩放区域内数据进行进一步处理的需求。 在使用 …

    2025年12月6日 web前端
    000
  • php数据如何制作简单的数据图表_php数据图形库GD的使用教程

    PHP通过GD库可手动绘制柱状图等简单图形,适用于轻量级场景。首先确认GD扩展已启用,使用extension=gd并重启服务器;接着定义数据与画布,利用imagecreate创建图像,imagecolorallocate设置颜色,imagefilledrectangle绘制柱子,imageline添…

    2025年12月6日 后端开发
    000
  • PHP视频播放统计数据分析_PHP视频播放统计数据分析

    答案:使用PHP分析视频播放数据需先通过前端记录用户行为并存储至数据库,关键字段包括用户ID、视频ID、播放时间等;基础分析涵盖总播放量、各视频播放次数、平均观看时长及每日趋势;进阶分析可挖掘用户回看率、流失点、设备偏好与地域分布;结合Chart.js等工具将结果可视化,生成报表支持运营决策。 在开…

    2025年12月2日
    000
  • 在Java中如何开发在线新闻分类与推送系统_新闻分类推送项目实战解析

    答案是开发在线新闻分类与推送系统需采用前后端分离架构,后端以Spring Boot整合MyBatis操作MySQL,前端用Vue实现;系统涵盖新闻管理、多级分类、审核流程、评论互动等核心功能,并通过Shiro实现角色权限控制;结合定时任务与WebSocket实现消息推送,利用协同过滤算法开展个性化推…

    2025年12月2日 java
    000
  • Java里如何实现在线新闻阅读统计与分析_新闻阅读统计分析项目开发方法说明

    豆包输入法1.0正式版上线,内置情境感知引擎,支持中英文混合滑行输入,可在小米应用商店下载,具备智能词库切换与高效输入体验。 在Java开发的新闻系统中,实现阅读统计与分析是提升内容运营效率的关键环节。核心思路是通过记录用户行为,在保证数据准确性的前提下进行存储和计算,并提供可视化分析。整个过程不复…

    2025年12月2日
    000
  • css颜色在图表组件中的应用方法

    合理应用CSS颜色可提升图表视觉效果与可读性。通过CSS类集中管理颜色主题,便于复用和维护;使用CSS变量实现动态配色,支持主题切换;结合JavaScript根据数据状态添加条件类名,实现负值红色、正常值绿色等语义化色彩;注意可访问性,确保颜色对比度符合WCAG标准,配合纹理或标签辅助区分,避免仅依…

    2025年12月2日 web前端
    000
  • css动画在图表组件动态变化中的应用

    CSS动画通过平滑过渡提升图表数据变化的可视性,利用transform和keyframes实现柱状图生长、折线绘制等效果,结合will-change优化性能,并与Chart.js、D3.js等库协同增强交互体验,合理控制节奏以兼顾美观与信息传达效率。 在现代数据可视化中,图表组件不仅仅是静态展示数据…

    2025年12月2日 web前端
    000
  • 在Java中如何开发在线活动报名统计系统_活动报名统计项目实战解析

    答案:系统实现用户报名与统计分析,包含活动发布、报名防重、数据存储及可视化功能;采用Spring Boot+MySQL+Vue技术栈,通过唯一索引防止重复报名,MyBatis-Plus操作数据库,ECharts展示统计图表。 开发一个在线活动报名统计系统,核心是实现用户报名、数据收集与统计分析功能。…

    2025年12月2日 java
    000
  • 在Java中如何实现在线图书借阅统计_图书借阅统计功能开发经验

    答案:实现在线图书借阅统计需构建Book、User、BorrowRecord数据模型,通过JPA/MyBatis映射并采集借还记录;利用SQL聚合与Redis缓存实现按时间、类别等维度的统计查询;后端提供RESTful接口返回DTO数据,前端结合ECharts展示热门图书排行与分布图表,辅以事务控制…

    2025年12月1日 java
    000
  • Java里如何开发在线投票结果统计功能_投票统计项目实战解析

    答案:通过设计投票项、用户记录和结果缓存三张表,结合唯一索引防重、事务控制与Redis原子操作,实现高并发下的投票统计功能,使用Spring Boot+MyBatis Plus+Redis组合提升开发效率与系统稳定性。 在Java项目中实现在线投票结果统计功能,关键在于数据模型设计、接口逻辑处理以及…

    2025年12月1日 java
    000
  • 在Java中如何开发任务管理与进度跟踪系统_任务进度管理项目开发方法解析

    答案:开发Java任务管理与进度跟踪系统需明确用户、任务、进度和通知四大模块,采用Spring Boot+JPA+MySQL技术栈,通过三层架构实现任务创建、分配、状态机控制、进度更新与可视化,结合定时提醒与权限校验,使用ECharts展示数据,先构建最小可用版本并持续迭代。 开发一个任务管理与进度…

    2025年12月1日 java
    000
  • 如何从 ECharts 中获取缩放后的 xAxis 标签?

    本文旨在帮助开发者在使用 ECharts 的 dataZoom 功能后,获取当前缩放范围内 xAxis 上的标签值。通过监听 `datazoom` 事件并结合 `getOption` 方法,我们可以从图表配置中提取所需的数据,从而实现动态获取缩放后的 xAxis 标签。 在使用 ECharts 进行…

    2025年11月30日
    000
  • Recharts 柱状图按数据项动态着色:cells 属性的正确用法

    本文将深入探讨在使用 Recharts 库创建柱状图时,如何为不同的数据项动态设置各自的颜色,解决所有柱子颜色统一的常见问题。通过对比 Bar 组件中 fill 属性的局限性与 cells 属性的强大功能,提供清晰的解决方案和代码示例,帮助开发者实现更具表现力的 数据可视化。 Recharts 柱状…

    2025年11月29日 web前端
    000
  • 网页SQL数据统计怎么写_网页编写SQL数据统计查询的方法

    答案:SQL数据统计查询需结合高效SQL语句与前后端协作,通过聚合函数、索引优化、连接池管理及前端分页渲染提升性能与展示效果。 Elser AI Comics 一个免费且强大的AI漫画生成工具,助力你三步创作自己的一出好戏 522 查看详情 SQL数据统计查询,核心在于利用SQL语句高效地从数据库中…

    2025年11月29日 数据库
    000
  • 在Java中如何实现在线投票结果展示_投票结果模块开发经验

    答案:实现在线投票结果展示需设计投票主题、选项和记录表,通过Spring Boot提供获取结果和提交投票接口,结合Redis缓存与数据库双写提升性能,前端使用ECharts可视化数据并支持实时刷新,同时引入Token/IP限频防刷、消息队列异步处理及定时归档机制,确保系统安全、高效、可扩展。 在Ja…

    2025年11月28日 java
    000
  • 前端数据可视化与JavaScript图表库

    前端数据可视化需选合适图表库,如Chart.js易上手,ECharts适配复杂图,D3.js定制强,ApexCharts动效佳;结合设计原则提升交互与性能。 前端数据可视化是将数据通过图形化方式呈现,帮助用户更直观地理解信息。在现代Web开发中,JavaScript图表库扮演着关键角色,它们让开发者…

    2025年11月28日 web前端
    000
  • Java里如何实现任务进度统计与报表生成_任务统计报表项目开发方法说明

    答案是实现Java任务进度统计与报表生成需构建完整闭环:首先设计含任务ID、负责人、计划时间、实际进度、状态等字段的任务模型,用数据库存储并通过DAO层支持CRUD操作;每次状态变更时记录日志并更新缓存,确保数据一致性;在Service层按项目、人员等维度计算总进度(加权完成度)、延期率等指标,判定…

    2025年11月28日 java
    000
  • 在Java中如何开发在线课程学习记录可视化工具_课程学习记录可视化项目实战解析

    答案:Java开发在线课程学习记录可视化工具需协同数据采集、处理与前端展示。1. 设计UserLearningRecord类,包含用户、课程、章节、时长、日期等字段;2. 使用Spring Boot构建后端,提供RESTful接口查询学习统计;3. 前端通过Chart.js渲染折线图、饼图展示学习趋…

    2025年11月28日 java
    000

发表回复

登录后才能评论
关注微信