位置: IT常识 - 正文

echarts:饼图标签formatter的使用/饼图自定义标签(echarts饼图标题)

发布时间:2024-01-07
echarts:饼图标签formatter的使用/饼图自定义标签 需求描述

推荐整理分享echarts:饼图标签formatter的使用/饼图自定义标签(echarts饼图标题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:echarts饼图标签位置设置,echarts饼图动画效果,echarts饼图标题字体颜色,echarts饼图背景图片,echarts饼图标题字体颜色,echarts饼图背景图片,echarts饼图背景图片,echarts饼图标题字体颜色,内容如对您有帮助,希望把文章链接给更多的朋友!

需要实现一个“五彩斑斓”的饼图:每块饼上的标签颜色与这块饼的颜色一致。

实现思路

要改变饼图标签的颜色,需要参考echarts饼图label配置项,以及这个很棒的官方示例:饼图引导线调整。从这个示例中可以了解到自定义标签涉及的两个配置项:formatter(用于自定义标签显示内容)、rich(用于自定义标签文字显示样式)。

label: { formatter: '{name|{b}}\n{time|{c} 小时}', rich: { time: { fontSize: 10, color: '#999' } }}

接下来稍微讲解下上面这段自定义标签的配置项:

formatter

比较简单的标签内容可以通过使用echarts标签字符串模板实现(个人感觉理解起来类似于JS模板字符串),“{name|{b}}\n{time|{c} 小时}”中包含两个内容(“{b}”、“{c} 小时”),它们之间使用“\n”分隔。至于“{name|}”“{time|}”这种写法,大概相当于“<div class=‘name’>{b}</div>”、“<div class=‘time’>{c} 小时</div>”,用于为内容指定样式类名。 此外,还可以通过回调函数的方式手动返回formatter字符串,且回调函数中无法使用echarts标签字符串模板(也没有必要使用,回调函数传入的参数包含的数据更全),如果用回调函数生成上面的formatter字符串,可以这样写:

label: { formatter: params => { // console.log(params) return `{name|${params.name}}\n{time|${params.value} 小时}` }, rich: { time: { fontSize: 10, color: '#999' } }}rich

用于为每个样式类名配置具体样式内容,可以参考echarts支持的样式配置

echarts:饼图标签formatter的使用/饼图自定义标签(echarts饼图标题)

根据笔者的测试,有两点需要注意:①自定义标签样式必须通过在formatter中为内容设置样式类名并在rich中配置对应样式实现;②每段内容只能指定一个样式类名

参考代码

根据以上分析,要实现标签颜色与饼块一致,可以预先定义一个配色数组,遍历数组为每种颜色创建rich样式类名,再使用回调函数formatter为标签内容指定下标一致的样式类名即可,具体参考代码如下:

let pieColors = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de']let richColor = {}pieColors.forEach((item, idx) => { richColor[`color${idx}`] = { fontSize: 28, color: item }})option = { color: pieColors, series: [ { name: 'Access From', type: 'pie', radius: ['36%', '56%'], avoidLabelOverlap: false, label: { formatter: params => { // console.log(params) return `{color${params.dataIndex}|${params.name}(${params.value})}` }, rich: richColor }, labelLine: { lineStyle: { width: 3 } }, data: [ { value: 1048, name: 'Search Engine' }, { value: 735, name: 'Direct' }, { value: 580, name: 'Email' }, { value: 484, name: 'Union Ads' }, { value: 300, name: 'Video Ads' } ] } ]};在线运行调试

isqqw-饼图标签示例

标签plus

现在增加这样一个小需求:在刚才的圆环饼图中心,增加展示饼图所有数据的和,效果类似:

分析

首先想到的方案,也是笔者曾经使用的方案:自己多写一个div来展示圆环中心的数据,但现在笔者有了更好的思路,便不细讲了。

新的思路 其实和之前的思路差不多,只是不再自己写一个div自己调样式,而是利用echarts饼图支持在圆心处展示标签的特性,在series中增加一个饼图用于展示总数,参考代码如下:let pieColors = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de']let richColor = {}pieColors.forEach((item, idx) => { richColor[`color${idx}`] = { fontSize: 28, color: item }})let chartData = [ { value: 1048, name: 'Search Engine' }, { value: 735, name: 'Direct' }, { value: 580, name: 'Email' }, { value: 484, name: 'Union Ads' }, { value: 300, name: 'Video Ads' }]option = { color: pieColors, series: [ { name: 'Access From', type: 'pie', radius: ['36%', '56%'], avoidLabelOverlap: false, label: { formatter: params => { // console.log(params) return `{color${params.dataIndex}|${params.name}(${params.value})}` }, rich: richColor }, labelLine: { lineStyle: { width: 3 } }, data: chartData }, { name: '数据总数', type: 'pie', radius: ['0%', '0%'], itemStyle: { // 防止鼠标悬浮到标签时出现放大的点 color: 'transparent' }, label: { position: 'inside', formatter: `{data|{c}}\n{serie|{a}}`, rich: { data: { fontWeight: 'bold', fontSize: 64, color: `#202020`, lineHeight: 68, textBorderColor: `transparent`, textBorderWidth: 0 }, serie: { fontSize: 24, color: `#acbac6`, lineHeight: 28, textBorderColor: `transparent`, textBorderWidth: 0 } } }, labelLine: { show: false }, data: [ // 计算表格数据value总和 chartData.reduce((prev, cur) => prev + cur.value, 0) ] } ]};

小伙伴们可跳转isqqw-饼图标签示例在线运行调试~☆▽☆~

(最后再多嘴一句,echarts配置项的层级非常重要!!!如果出现了配置项“失效”的情况,可以先·仔细·对照官方文档,排查下配置项的层级问题~)

比官网更丰富的echarts示例!

强烈推荐一个有非常丰富的echarts在线示例的网站:PPChart,但由于遭到DDOS攻击,PPChart服务不太稳定,大家也可以访问PPChart开发者推荐的另外两个站点:madeapie、isqqw,目前笔者关于echarts的博客代码都已在isqqw创建在线示例o^~^o

参考网址

[1] echarts饼图label配置项 [2] echarts标签字符串模板 [3] JS模板字符串 [4] echarts支持的样式配置

本文链接地址:https://www.jiuchutong.com/zhishi/288887.html 转载请保留说明!

上一篇:OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “C:\ProgramData\Anaconda3\lib\site-packages\to

下一篇:火星快车号传来的火星南极冰盖图像 (© ESA/DLR/FU Berlin/Bill Dunford)(火星车百家号)

  • 华为nova9pro支持5G吗(华为nova9pro支持5gwifi吗)

    华为nova9pro支持5G吗(华为nova9pro支持5gwifi吗)

  • 腾讯微云怎么备份照片(腾讯微云怎么备份通讯录)

    腾讯微云怎么备份照片(腾讯微云怎么备份通讯录)

  • 照片宽33mm高48mm是多少像素(照片宽33mm高48mm是192宽高148)

    照片宽33mm高48mm是多少像素(照片宽33mm高48mm是192宽高148)

  • 抖音退公会会有什么后果(抖音退公会会不会限流)

    抖音退公会会有什么后果(抖音退公会会不会限流)

  • 数据传输的可靠性指标是(数据传输的可靠性是由哪一层)

    数据传输的可靠性指标是(数据传输的可靠性是由哪一层)

  • 支付宝没有网络访问权限是什么意思(支付宝没有网络怎么办)

    支付宝没有网络访问权限是什么意思(支付宝没有网络怎么办)

  • 小红书怎么增加浏览量(小红书怎么增加流量)

    小红书怎么增加浏览量(小红书怎么增加流量)

  • 网络已停用是什么意思(手机数据网络不可用是什么原因)

    网络已停用是什么意思(手机数据网络不可用是什么原因)

  • 电池没充满电就拔了有什么副作用(电池电量没充满,就拔掉使用)

    电池没充满电就拔了有什么副作用(电池电量没充满,就拔掉使用)

  • ip66防护等级是什么(防护等级ip66与ip65)

    ip66防护等级是什么(防护等级ip66与ip65)

  • 外接已转接来电啥意思(外接已转接来电怎么处理)

    外接已转接来电啥意思(外接已转接来电怎么处理)

  • 小米实况模式长曝光在哪里(小米手机的实况模式怎么打开)

    小米实况模式长曝光在哪里(小米手机的实况模式怎么打开)

  • 荣耀手环一定要荣耀手机吗(荣耀手环一定要配荣耀手机吗)

    荣耀手环一定要荣耀手机吗(荣耀手环一定要配荣耀手机吗)

  • 苹果8plus128g什么时候上市(苹果8plus128g什么时候上市的)

    苹果8plus128g什么时候上市(苹果8plus128g什么时候上市的)

  • 华为微信视频怎么美颜(华为微信视频怎么开美颜)

    华为微信视频怎么美颜(华为微信视频怎么开美颜)

  • 华为nova5pro怎么装卡(华为nova5pro怎么录屏)

    华为nova5pro怎么装卡(华为nova5pro怎么录屏)

  • 华为nova5主打什么功能(华为nova 5这个手机怎么样值得购买吗)

    华为nova5主打什么功能(华为nova 5这个手机怎么样值得购买吗)

  • 直播间被禁言了一般多久恢复(直播间被禁言了能看到自己打的字吗)

    直播间被禁言了一般多久恢复(直播间被禁言了能看到自己打的字吗)

  • pr剪辑里怎么瘦脸(pr视频怎么瘦身)

    pr剪辑里怎么瘦脸(pr视频怎么瘦身)

  • 华为荣耀9怎么实现AI识屏购物(华为荣耀9怎么退出程序)

    华为荣耀9怎么实现AI识屏购物(华为荣耀9怎么退出程序)

  • iphone xr有哪些独有功能(苹果xr独有的功能)

    iphone xr有哪些独有功能(苹果xr独有的功能)

  • 耳机弹窗是什么意思(耳机弹窗是什么东西)

    耳机弹窗是什么意思(耳机弹窗是什么东西)

  • 怎么下载迅雷(怎么下载迅雷云盘的文件夹)

    怎么下载迅雷(怎么下载迅雷云盘的文件夹)

  • 华为手机通话时不能上网(华为手机通电话)

    华为手机通话时不能上网(华为手机通电话)

  • arcore是什么(arcorest)

    arcore是什么(arcorest)

  • NovelAi + Webui + Stable-diffusion本地配置

    NovelAi + Webui + Stable-diffusion本地配置

  • 退个税手续费如何申报
  • 企业缴纳所得税税率
  • 新企业会计准则2021
  • 装修行业专票的税率是多少
  • 不征税发票需要预缴税款吗
  • 开票系统技术服务费在申报表哪里抵扣
  • 行政单位盘盈固定资产应按什么入账
  • 小规模纳税人处置固定资产的税率
  • 出口退税免税申报怎么报
  • 小企业工资薪酬制度
  • 办理产权证费用明细
  • 长期股权投资收到红利会计处理
  • 代垫款收到的发票在哪里
  • 购入材料时,会出现哪几种情况
  • 商场积分兑换现金怎么用
  • 自查增值税补缴怎么处理
  • 6位数开票代码
  • 公司按月工资怎么算
  • 以前年度损益调整会计分录
  • 出口退税款的账户是什么
  • 个税是负数直接工资加上吗
  • 个体工商户核定征收标准2023
  • 成本核算怎么核算
  • 电脑台式机显卡怎么拆
  • linux系统备份整个硬盘的命令
  • pdv文件什么意思
  • 委托外部加工材料支付加工费计入
  • php redis实现秒杀思路
  • vue word editor
  • 限售股转让个人所得税退税
  • 房地产企业土地增值税预缴计税依据
  • 合作社分红怎么计算
  • 购入多项固定资产
  • import vue from vue报错
  • 机票报销需要哪些才可以
  • 使用ajax实现页面分页
  • 预提和计提
  • 02-MyBatis-Plus
  • 分批发货分批付款
  • 债务豁免的账务处理
  • mysql误删数据
  • 纳税人缴纳的税款叫做什么
  • 公司买的材料做什么分录
  • 物业 收电费
  • 工资标准表
  • 房租收入如何缴纳增值税
  • 固定资产报废后怎么处理
  • 购买材料发生商损怎么算
  • 应付账款怎么入账
  • 期初建账怎么做
  • 销售的差额如何分录
  • 减免税款月末是否结平
  • 银行汇票的适用主体
  • 资产负债表的编制依据是会计恒等式
  • sqlserver升级到2016
  • mysql完整教程
  • xp系统为什么不能用了
  • 提升英语
  • freebsd中文手册
  • w10预览版21343下载
  • win1021h2版本千万别更新
  • win7pxe-mof:exiting pxe rom
  • 休眠后网络断开
  • 高级控件动态数据加载过程有哪些
  • scrollWidth,clientWidth与offsetWidth的区别
  • cocos2dx3.2 xcode中资源路径设置问题
  • cocos2dx-js
  • bootstrap怎么学
  • 浏览器css3兼容
  • unity3d界面
  • 云南省国家税务局APP
  • 个人可以到税务开物业费的
  • 不同地区的社保卡通用吗
  • 北京国家税务局官网
  • 城市维护建设税税率
  • 企业交社保可以退税吗
  • 陕西税务干部学校副教授李刚简历
  • 北京市地税局电话是多少
  • 山西省网上营业执照申请官网?
  • 加拿大海关关税税率查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号