echarts饼状图显示百分比

本文详细介绍了如何使用ECharts库创建动态饼图,包括配置文件路径、按需加载图表类型、初始化图表、设置标题、工具提示、图例、数据系列等关键参数,以及通过后端数据动态生成饼图数据。

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

// 路径配置
require.config({
    paths: {
        echarts: '${ctx}/js/other/echart'
    }
});

// 使用
require(
    [
        'echarts',
        'echarts/chart/pie', // 使用柱状图就加载bar模块,按需加载
        'echarts/chart/bar'
    ],
    function (ec) {
        // 基于准备好的dom,初始化echarts图表
        var echart = ec.init(document.getElementById('echart'));
        option = {
            title: {
                text: '统计',
                subtext: '按照类别统计',
                x: 'center'
            },
//这里控制鼠标悬浮显示百分比
            tooltip: {
                trigger: 'item',
                formatter: "{a} {b} : {c}次 ({d}%)"
            },
            toolbox: {
                show: true,
                feature: {
                    restore: {show: true},
                    saveAsImage: {show: true}
                }
            },
            legend: {
                orient: 'vertical',
                x: 'left',
                data: [
                    <c:forEach items="${repairStat}" var="map" varStatus="sts">
                    <c:choose>
                    <c:when test="${map.key != null}">'${map.key}'</c:when>
                    <c:otherwise>'未知项点'</c:otherwise>
                    </c:choose>
                    <c:if test="${not sts.last}">, </c:if>
                    </c:forEach>
                ]
            },
            calculable: false,
            series: [
                {
                    type: 'pie',
                    radius: '55%',
                    center: ['50%', '60%'],
                    selectedMode: 'multiple',
                    data: [
                        <c:forEach items="${repairStat}" var="map" varStatus="sts">
                        {
                            value: '${map.value}',
                            name: <c:choose><c:when test="${map.key != null}">'${map.key}'
                            </c:when><c:otherwise>'未知项点'</c:otherwise></c:choose>
                        }
                        <c:if test="${not sts.last}">, </c:if>
                        </c:forEach>
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        },
//下面控制显示饼状图上百分比
                        normal:{
                            label:{
                                show: true,
                                formatter: '{b} : {c}次 ({d}%)'
                            },
                            labelLine :{show:true}
                        }
                    }
                }
            ]
        };
        echart.setOption(option); // 为echarts对象加载数据
    }
);

 

### ECharts饼状图Legend显示数据值配置 在ECharts中,要使饼状图的图例(legend)能够显示具体的数值或百分比,主要通过`series`中的`label`属性以及`formatter`函数来实现。对于希望直接在图例外部也体现这些信息,则需自定义图例内容。 #### 自定义图例以显示具体数值 由于ECharts默认不支持直接在图例里显示数值,因此可以通过如下方式间接达成目的: 1. **修改数据项名称** 将每个扇区对应的数据项名称设置成包含其占比的形式,在初始化图表时处理原始数据集,使得每条记录的名字部分既含有类别又带有比例说明[^1]。 ```javascript let data = [ {value: 335, name:'直达 33.5%'}, {value: 310, name:'邮件营销 31.0%'}, ... ]; ``` 2. **利用富文本格式化工具提示和标签** 使用rich属性来自定义复杂的HTML结构作为tooltip或者itemStyle内的文字描述,从而允许更灵活地控制呈现效果[^3]。 ```javascript option = { tooltip : { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, series : [ { type: 'pie', label:{ normal:{ rich:{}, formatter:function (params){ return params.name.split(' ')[0]+ '\n'+ '{per|('+params.value+' '+String(params.percent).slice(0,4)+'%)}'; } } } } ] }; ``` 3. **外部构建静态图例列表** 如果追求更加独立于图形本身的固定位置布局,可以考虑脱离内置组件单独渲染一组DOM元素充当伪图例,并依据实际业务逻辑填充相应的内容[^2]。 以上三种方案各有优劣,可根据项目需求和个人偏好选取合适的方式实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值