echarts 饼状图 label 既在内部显示数值(百分比),又显示外部指示线

这篇具有很好参考价值的文章主要介绍了echarts 饼状图 label 既在内部显示数值(百分比),又显示外部指示线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

项目开发中,产品经理绘制的原型图中,需要前端实现一个饼状图,且既在饼图内部中 显示 百分比,又显示 外部指示线及数值,效果如下图所示:

echarts饼图上显示数据,Echarts,echarts,javascript,ecmascript,饼状图,echarts 配置

查了下 Echarts 官网文档,需要配置 series 下的 label 配置项,如下所示:

series: [
	label: {
		normal: {
			position: 'inside' // 在内部显示,outseide 是在外部显示
			show: true,
			formatter: '{c}  // formatter 是标签内容的格式器,用于转换格式。支持 字符串和回调函数两种形式。
		}
	}
	
]

其中,formatter 是标签内容的格式器,用于转换格式。支持 字符串和回调函数两种形式。

{c} 代办字符串模板变量,表示数据值,常用的模板变量有:

  • { a }:系列名
  • { b }:数据名
  • { c }:数据值
  • { d }:百分比

不过问题来了,echarts 好像没法直接配置成 内部+外部 同时展示的情况。,因为在单个的 series 中(即其中的一个对象中),只能设置一个label。

echarts饼图上显示数据,Echarts,echarts,javascript,ecmascript,饼状图,echarts 配置

不过也好解决,通过查看 echarts 官网 series 配置项,可以看出,series 是一个数组(如上图所示),既然单个中只能出现一个,那么我配置成 2个(多个)相同的对象,让他们重合,就会出现两个 label 标签,一个在内部展示,一个在外部展示,就可以完美解决这种情况。

代码实例如下所示:

series: [
                {
                    type: 'pie',
                    radius: '90%',
                    data: [
                        { value: data?.winBidNumber || 0, name: '中标数量' },
                        { value: data?.loseBidNumber || 0, name: '未中标数量' },
                        { value: data?.abandonBidNumber || 0, name: '弃标数量' }
                    ],
                    labelLine: {
                        show: true,
                        position: 'outside',
                        length: 10,
                        length2: 50
                    },
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    },
                    label: {
                        normal: {
                            position: 'outside',
                            show: true,
                            formatter: (d: any) => {
                                console.log(222, d);
                                return d.name + '(' +  d.value  + '次' +')'
                            }
                        }
                    }
                },
                {
                    type: 'pie',
                    radius: '90%',
                    data: [
                        { value: data?.winBidNumber || 0, name: '中标数量' },
                        { value: data?.loseBidNumber || 0, name: '未中标数量' },
                        { value: data?.abandonBidNumber || 0, name: '弃标数量' }
                    ],
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    },
                    label: {
                        normal: {
                            position: 'inside',
                            show: true,
                            formatter: (d: any) => {
                                return d.percent + '%'
                            }
                        }
                    }
                }
            ]

其中, labelLine 属性 是 用来配置 外部指示线(第一段、第二段)的长度及样式的。

formatter 为 回调函数的写法如上面的代码实例,该回调函数接收一个参数,该参数的值包含了 模板字符串变量所拥有的值,如下图打印的所示:

echarts饼图上显示数据,Echarts,echarts,javascript,ecmascript,饼状图,echarts 配置文章来源地址https://www.toymoban.com/news/detail-689152.html

到了这里,关于echarts 饼状图 label 既在内部显示数值(百分比),又显示外部指示线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【echarts记录 -- 3d 饼状图实现】

    2024年02月12日
    浏览(34)
  • 可视化Echarts 柱状图、饼状图、折线图的设置

    柱状图  饼状图  折线图  柱状图           基本的柱状图设置          效果:           柱状图的更多效果         标注大值和最小值           标注平均值         水平柱状图设置 (将x轴的配置放在y轴配置中)         效果:  饼状图      

    2023年04月24日
    浏览(37)
  • Cesium和Echarts的完美集成展示3D柱状图、折线图和饼状图

    在本文中,我们将介绍如何将Cesium和Echarts两个强大的数据可视化工具进行集成,实现在Cesium地球上展示3D柱状图、折线图和饼状图的功能。Cesium是一个用于创建基于Web的地球浏览和可视化应用程序的JavaScript库,而Echarts是一个功能强大的数据可视化库,支持多种图表类型。 首

    2024年02月04日
    浏览(44)
  • 在vue项目使用数据可视化 echarts ,柱状图、折线图、饼状图使用示例详解及属性详解

      npm install echarts --save 页面导入:   import * as echarts from \\\'echarts\\\' 全局导入:  main.js 中,导入并注册到全局   import echarts from \\\'echarts\\\'   Vue.prototype.$echarts = echarts

    2024年02月13日
    浏览(32)
  • (vue)多级表头且转为百分比显示

    2024年02月11日
    浏览(29)
  • 鸿蒙OS应用开发之百分比显示组件

    前面学习了动态加载的组件,在本文里将要学习百分比显示组件,这个组件可以把数据按百分比的情况进行图形显示出来。百分比图形显示还是很有用的,比如一个班里学生的成绩占比,还有软件项目开发进度的情况,还有软件下载进度等等。 在鸿蒙系统里定义这个组件接口

    2024年01月20日
    浏览(35)
  • CSS(ellipsis) 用百分比宽度将字符串溢出部分显示为省略号

    通常使用 ellipsis 将溢出部分显示为省略号必须给出指定像素宽度(width:200px),这样不方便共享响应式的样式定义,经过查资料,可以用 CSS 的 calc() 函数实现。

    2024年02月07日
    浏览(32)
  • PostGreSql中统计表中每天的数据,并统计每天的回复数,未回复数以及未回复占比(显示百分比)

    要在 PostgreSQL 中统计表中每天的数据,并统计每天的回复数、未回复数以及未回复占比,并以百分比形式显示,你可以使用以下 SQL 查询。假设你有一个名为 \\\"messages\\\" 的表,其中包含消息的时间戳列 \\\"timestamp\\\" 和一个指示消息是否已回复的列 \\\"replied\\\"(1 表示已回复,0 表示未回

    2024年02月07日
    浏览(33)
  • 若依项目制作饼状图和柱状图

    echarts+vue 先写一个实体类,将查到的数据放在实体类中,写一个mapper-mapper.xml-controller 这里为了方便测试没有写service 实体类 mapper mapper.xml 这里的SQL查到的值一定要和实体类定义的相同,要不然会报错, SQL里的where del_flag = 0这里我是判断是否删除,可以不写 controller 这里的

    2023年04月21日
    浏览(29)
  • python柱状图、直方图和饼状图统计学生成绩

    Python的matplotlib库具有很强大的绘图功能,可以利用这个库函数来进行学生成绩统计。假如有一个班的某科学生成绩如表1所示,可以用柱状图、直方图和饼状图三种方式来进行统计分析。下边介绍一下操作步骤。 表1 学生成绩表 学号 分数 20221001 61 20221002 68 20221003 74 20221004 7

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包