Echarts定制(2)-间断圆环

本文介绍如何使用ECharts创建具有间断效果的圆环图,并提供了详细的代码示例。通过在数据中插入特定样式的元素来实现视觉上的间断效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Echarts定制- 间断圆环

一、基础学习

B站有超详细的基础教学视频,这里我推荐

黑马程序员pink老师https://www.bilibili.com/video/BV1v7411R7mp
非常的详细,风格幽默

charts社区:
https://www.makeapie.com/explore.html
这里有超多的炫酷效果

二、间断圆环

在这里插入图片描述

//圆环的间断效果就是通过每个数据中间插一个值比较小的数据,
//并且将这个数据的样式改为背景色,这样就实现了间断的效果
var data=[
                 {value: 178,
                 name: '1-20岁',
                 itemStyle:{
                     normal: {
                     borderWidth: 5,
                     shadowBlur: 20,
                     borderColor:'#00ffff',
                     shadowColor: '#00ffff'
                    }
                   }
                 },
                 //实现间断的数据
                 {value: 50,//值根据自己需要的效果调大小
                 name: '',
                 itemStyle: {
                     normal: {
                     label: {
                         show: false
                     },
                     labelLine: {
                         show: false
                     },
                     //设置间断的颜色样式
                     color: 'rgba(0, 0, 0, 0)',
                     borderColor: 'rgba(0, 0, 0, 0)',
                     borderWidth: 0
                     }
                 }
                 },
                  {value: 1335,
                 name: '20-30岁',
                 itemStyle:{
                     normal: {
                     borderWidth: 5,
                     shadowBlur: 20,
                     borderColor:'#006ced',
                     shadowColor: '#006ced'
                    }
                   }
                 },
                 {value: 50,
                 name: '',
                 itemStyle: {
                     normal: {
                     label: {
                         show: false
                     },
                     labelLine: {
                         show: false
                     },
                     color: 'rgba(0, 0, 0, 0)',
                     borderColor: 'rgba(0, 0, 0, 0)',
                     borderWidth: 0
                     }
                 }
                 },
                  {value: 457,
                 name: '30-40岁',
                 itemStyle:{
                     normal: {
                     borderWidth: 5,
                     shadowBlur: 20,
                     borderColor:'#ffa800',
                     shadowColor: '#ffa800'
                    }
                   }
                 },
                 {value: 50,
                 name: '',
                 itemStyle: {
                     normal: {
                     label: {
                         show: false
                     },
                     labelLine: {
                         show: false
                     },
                     color: 'rgba(0, 0, 0, 0)',
                     borderColor: 'rgba(0, 0, 0, 0)',
                     borderWidth: 0
                     }
                 }
                 },
                  {value: 567,
                 name: '40岁以上',
                 itemStyle:{
                     normal: {
                     borderWidth: 5,
                     shadowBlur: 20,
                     borderColor:'#ff5b00',
                     shadowColor: '#ff5b00'
                    }
                   }
                 },
                 {value: 50,
                 name: '',
                 itemStyle: {
                     normal: {
                     label: {
                         show: false
                     },
                     labelLine: {
                         show: false
                     },
                     color: 'rgba(0, 0, 0, 0)',
                     borderColor: 'rgba(0, 0, 0, 0)',
                     borderWidth: 0
                     }
                 }
                 },

             ];

 option = {
     backgroundColor: '#0A2E5D',
     series: [
         {
     name: '',
     type: 'pie',
     clockWise: false,
     radius: [55, 59],//设置圆环的内外半径
     hoverAnimation: true,
     itemStyle: {
         normal: {
             label: {
                 show: true,
                 position: 'outside',
                 color: '#ffffff',
                 fontSize :8,
                 //设置提示信息
                 formatter: function(params) {
                                     var percent = 0;
                                     var total = 0;
                                     for (var i = 0; i < 8; i=i+2) {
                                         total += data[i].value;
                                     }
                                     percent = ((params.value / total) * 100).toFixed(0);
                                     if(params.name !== '') {
                                         return '年龄段:' + params.name + '\n' + '\n' + '占百分比:' + percent + '%';
                                     }else {
                                         return '';
                                     }
                                 },
             },
             labelLine: {
                 length:10,
                 length2:20,
                 show: true,
                 color:'#00ffff'
             }
         }
     },
             data:data
         }
     ]
 };
### 绘制 ECharts 嵌套饼 要使用 ECharts 绘制嵌套饼,可以通过配置 `series` 属性中的多个对象实现。每个 `series` 对象代表一个独立的饼层,通过调整其 `radius` 和 `center` 参数可以分别控制大小和位置。 以下是具体方法: #### 1. 设置基本结构 ECharts表初始化通常需要指定 DOM 容器以及基础配置项。对于嵌套饼来说,核心在于定义多组 `series` 数据[^1]。 ```javascript // 初始化 echarts 实例 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); // 配置项 var option = { series: [ // 外层饼数据 { type: 'pie', radius: ['50%', '70%'], // 控制外圈半径范围 center: ['50%', '50%'], // 中心点坐标 data: [ { value: 40, name: 'A' }, { value: 60, name: 'B' } ] }, // 内层饼数据 { type: 'pie', radius: ['20%', '40%'], // 控制内圈半径范围 center: ['50%', '50%'], data: [ { value: 30, name: 'C' }, { value: 70, name: 'D' } ] } ] }; myChart.setOption(option); ``` 上述代码展示了如何创建两个不同层次的饼,并通过 `radius` 调整内外圆环的比例关系。 #### 2. 自定义样式 为了增强可视化效果,还可以进一步自定义颜色、标签显示等内容。例如,添加 `label` 或者修改默认主题配色方案。 ```javascript { label: { show: true, formatter: '{b}: {c} ({d}%)', // 显示名称、数值及百分比 fontSize: 14 }, itemStyle: { color: function(params) { var colors = ['#ff8a65', '#9ccc65']; // 自定义渐变色彩数组 return colors[params.dataIndex]; } } } ``` 以上片段说明了如何利用回调函数动态分配每一块扇区的颜色。 #### 注意事项 - 确保所有 `series` 共享相同的 `center` 值以便保持同心布局。 - 如果存在过多层级,则需合理规划各部分占比以免视觉混乱。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值