Echarts饼图环形图中间添加文字、title、graphic

该文章展示了一段ECharts的配置代码,用于创建一个中心显示80%,并强调运动达标率的饼图。饼图分为已完成和未完成两部分,比例为80%和20%。

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

效果

在这里插入图片描述

// 指定图表的配置项和数据
        var option = {
            tooltip: {
                trigger: 'item',
                formatter: "{a} <br/>{b}: {c} ({d}%)"
            },
            color:["#27D9C8","#D8D8D8"],
            title:{
                text:"80%",
                left:"center",
                top:"50%",
                textStyle:{
                    color:"#27D9C8",
                    fontSize:36,
                    align:"center"
                }
            },
            graphic:{
                type:"text",
                left:"center",
                top:"40%",
                style:{
                    text:"运动达标率",
                    textAlign:"center",
                    fill:"#333",
                    fontSize:20,
                    fontWeight:700
                }
            },
            series: [
                {
                    name: '运动情况',
                    type: 'pie',
                    radius: ['65%', '70%'],
                    avoidLabelOverlap: false,
                    label: {
                        normal: {
                            show: false,
                            position: 'center'
                        },
                       
                    },
                    
                    data: [
                        { value: 80, name: '已完成' },
                        { value: 20, name: '未完成' },
                       
                    ]
                }
            ]
        };
ECharts 提供了丰富的可视化类型,包括常规的环形等。对于 3D 环形的需求,可以通过 ECharts 的扩展插件或自定义形实现。虽然 ECharts 官方核心库中没有直接提供 3D 环形的配置项,但可以借助 `echarts-gl` 插件以及一些高级配置来实现类似效果。 以下是一个基于 `echarts-gl` 实现 3D 的示例代码: ```html <!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="UTF-8"> <title>3D 环形示例</title> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%"></div> <script> var chart = echarts.init(document.getElementById('container')); var data = [ { value: 335, name: 'A' }, { value: 310, name: 'B' }, { value: 274, name: 'C' }, { value: 235, name: 'D' }, { value: 400, name: 'E' } ]; var option = { title: { text: '3D 环形示例', left: 'center' }, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', left: 'left' }, series: [{ type: 'pie', radius: ['40%', '70%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, emphasis: { label: { show: true, fontSize: '18', fontWeight: 'bold' } }, labelLine: { show: false }, data: data }], graphic: { elements: [{ type: 'text', left: 'center', top: 'center', style: { text: '环形', fontSize: 20, fill: '#333' } }] } }; // 使用 echarts-gl 实现 3D 效果(需要额外处理) // 可通过自定义系列(series)中的三维坐标系进行渲染 chart.setOption(option); </script> </body> </html> ``` 上述代码展示了如何使用 ECharts 创建一个带有环形结构的,并结合 `graphic` 组件在中心添加文字说明。如果需要进一步实现 3D 效果,可以通过引入 `echarts-gl` 中的 `pie3D` 类型或者自定义 `series` 来模拟 3D 渲染。 ### 自定义 3D 实现思路 若需更复杂的 3D ,可以参考以下步骤: - 使用 `echarts-gl` 中的 `surface` 或 `bar3D` 构建基础几何体。 - 结合 `dataset` 数据源动态生成 3D 形。 - 利用 `visualMap` 实现颜色渐变映射,增强立体感。 - 添加交互功能如旋转、缩等,提升用户体验。 例如,使用 `echarts-gl` 的 `pie3D` 示例: ```javascript option = { xAxis3D: {}, yAxis3D: {}, zAxis3D: {}, grid3D: { viewControl: { autoRotate: true } }, series: [{ type: 'pie3D', radius: [0, 20], itemStyle: { color: '#dd6b66' }, data: [{ value: 1048, name: 'A' }, { value: 1732, name: 'B' }] }] }; ``` 需要注意的是,`pie3D` 是 `echarts-gl` 中的一个实验性功能,具体实现可能需要根据实际需求调整参数和样式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝胖子的多啦A梦

你的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值