千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Echarts饼图中间文字完整实现

Echarts饼图中间文字完整实现

来源:千锋教育
发布人:xqq
时间: 2023-11-25 13:04:36 1700888676

饼图是数据可视化中最常用的一种图表,既能够呈现整体和部分的占比关系,也能够展示各个部分之间的比较。中间文字是饼图的一种增强呈现方式,能够将数据传达给用户并吸引用户的注意力。本文将从多个方面详细介绍echarts饼图中间文字的使用方法、实现技巧和样式设计,帮助读者更好地利用饼图来呈现数据。

一、基本使用

首先介绍最基本的饼图中间文字的实现方式。使用echarts的option配置项中,可通过属性series.pie.label设置中间文字的样式和内容。下面是一个简单的示例:


var option = {
    series: [{
        name: '访问来源',
        type: 'pie',
        radius: '55%',
        data: [
            { value: 235, name: '视频广告' },
            { value: 274, name: '联盟广告' },
            { value: 310, name: '邮件营销' },
            { value: 335, name: '直接访问' },
            { value: 1548, name: '搜索引擎' }
        ],
        label: {
            position: 'center',
            formatter: '{a|Total}\n{b|2453}',
            rich: {
                a: {
                    fontSize: 14,
                    lineHeight: 20
                },
                b: {
                    fontSize: 20,
                    lineHeight: 30
                }
            }
        }
    }]
};

对应效果如下图所示:

![基本使用效果图](https://i.loli.net/2021/08/06/eo2iSvy4DT7WGx9.png)

在示例中,通过设置label.position属性为“center”,实现中间文字居中显示。通过设置label.formatter属性指定了中间文字内容和样式。{a|Total}是指“Total”这个字符以a元素的样式呈现,也就是字体大小14px、行高20px。{b|2453}同理,是指“2453”这个数字以b元素的样式呈现,也就是字体大小20px、行高30px。

二、多级标签

有时候我们的数据会有多个层级,需要将数据按照不同的层级来进行分组。Echarts支持在饼图中使用多级标签,将同一层级的数据标签放在一起,比如下面这张图:

![多级标签图](https://i.loli.net/2021/08/06/TgoHMn43BZp2tWx.png)

实现这个效果需要添加两个系列:外圈的饼图和内圈的饼图。中间的文字就是靠这两个系列来实现的,这里只需要设置内圈饼图的label属性即可。下面是完整的代码示例:


var data = [
    { value: 335, name: '直接访问' },
    { value: 310, name: '邮件营销' },
    { value: 234, name: '联盟广告' },
    { value: 135, name: '视频广告' },
    { value: 1548, name: '搜索引擎' }
];

var option = {
    series: [{
        name: '',
        type: 'pie',
        clockWise: false,
        radius: [80, 90],
        itemStyle: {
            normal: {
                color: '#5789B8',
                shadowColor: '#000',
                shadowBlur: 10,
                shadowOffsetX: 3,
                shadowOffsetY: 3
            }
        },
        data: data
    }, {
        name: '',
        type: 'pie',
        clockWise: false,
        radius: [70, 80],
        itemStyle: {
            normal: {
                color: '#F4E1AD',
                label: { show: false },
                labelLine: { show: false }
            },
            emphasis: {
                color: '#FBD92F'
            }
        },
        data: [{
            value: 600,
            name: '',
            label: {
                normal: {
                    show: false,
                }
            }
        }]
    }]
};

option.series[1].data[0].label = {
    normal: {
        show: true,
        position: 'center',
        formatter: [
            '{a|总数}',
            '{b|' + data.reduce(function (sum, cur) { return sum + cur.value }, 0) + '}'
        ].join('\n'),
        rich: {
            a: {
                fontSize: 14,
                lineHeight: 20
            },
            b: {
                fontSize: 16,
                lineHeight: 20,
                color: '#FBD92F'
            }
        }
    }
};

多级标签的实现主要涉及饼图的系列和半径的设置,需要认真阅读示例代码,并根据实际情况做出调整。

三、样式定制

中间文字作为饼图中的重要组成部分,需要充分考虑美观性和可读性。因此,我们需要针对不同的场景设计不同的样式,并保持整个页面的风格一致。这里分别从字体、颜色、布局三个方面来介绍具体的样式定制方法。

四、总结

Echarts饼图中间文字是一种简单而有效的数据呈现方式,能够让用户更直观地理解数据,并提高用户体验。本文介绍了该功能的基本使用方法、多层级标签的实现方法、以及针对文本的字体、颜色、布局等方面的样式定制方法。通过这些技巧,我们可以更好地利用饼图来呈现数据,提高信息传达效率。

tags: dtype:object
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT