ECharts饼状图legend显示Value所占百分比

这样写好像麻烦了,此贴记录下当时自己的想法吧,简单的实现可以参考:

饼图legend显示百分比

此项目基于Vue

最近写项目碰到一个需求,需要在legend区域显示Value值所占比例,如下图所示。


在查询官方文档的时候,虽然提供了格式化图例文本的回调函数:

// 使用字符串模板,模板变量为图例名称 {name}
formatter: 'Legend {name}'
// 使用回调函数
formatter: function (name) {return 'Legend ' + name;
}

但是此函数只能对name进行格式化,无法取到value的值,所以我们可以在option外定义一个data,然后赋值给series.data,下面看代码

export var data = [{ value: 335, name: '直接访问' },{ value: 310, name: '邮件营销' }
]
//异步调用接口获取数据后,调用此方法重新为data幅值,由于对js进行了封装,外界无法直接幅值(相当于Setter方法)
export function handleArray(arr) {data = arr
}
//求data中value的总和
function arrCount(arr) {let count = 0arr.forEach(item => {count = count + item.value})return count
}
export default {tooltip: {trigger: 'item',formatter: '{b}: {c} ({d}%)'},legend: {itemGap: 8,icon: 'circle',bottom: '2%',textStyle: {color: '#fff'},//格式化图例文本formatter(name) {const count = arrCount(data)//找到data中name和文本name值相同的对象const val = data.filter(item => {return item.name === name})return name + '  ' + ((val[0].value / count).toFixed(4)) * 100 + '%'}},//设置饼状图的颜色color: ['#e61145', '#36dcb3', 'yellow', 'blue', 'indigo', 'purple'],series: [{type: 'pie',radius: ['50%', '65%'],avoidLabelOverlap: false,label: {show: false,position: 'center'},labelLine: {show: false},data: data}]
}

以上就实现了百分比的展示,接下来是在Vue中使用

在Vue中导入js文件

import * as pieChart from './chart/pieChart'

初始化图像:

    initPieChart() {//pieChart定义在data中(lineChart: null)this.pieChart = this.$echarts.init(document.getElementById('pie-chart'))this.pieChart.setOption(pieChart.default)const _this = thiswindow.addEventListener('resize', function() {_this.pieChart.resize()})}

模拟发送请求,动态更新data区数据:

  updateData() {const testData = [{ value: 3335, name: 't1' },{ value: 3310, name: 't2' },{ value: 2334, name: 't3' },{ value: 1335, name: 't4' },{ value: 15438, name: 't5' }]pieChart.handleArray(testData)pieChart.default.series[0].data = pieChart.datathis.pieChart.setOption(pieChart.default)}

到此就结束了~~

ECharts饼状图legend显示Value所占百分比相关推荐

  1. ECharts饼状图lable显示Value所占百分比

    ECharts饼状图lable显示Value所占百分比以及legend显示Value所占百分比 简单的实现可以参考: export default {data() {return {}},mounte ...

  2. vue+elementui+echarts饼状图内部显示百分比

    <!--饼状图--><div id="main" style="width: 400px;height: 350px;"></di ...

  3. echarts饼状图中间显示数值加上名字

    想实现的效果 <div id="echart" ></div> <script> function setEchartsPie(id, data ...

  4. echarts饼状图设置label的交互效果,饼状图鼠标浮上图形才显示label和视觉引导线

    echarts饼状图默认label和视觉引导线效果: 这个效果没有没有形成与用户的交互,此时添加如下设置: label: {show: false,position: 'outside'},empha ...

  5. Angular2组件与Echarts饼状图交互之饼图制作

    一.前言 1.基于ng4项目 2.组件包括:根组件app和饼状图组件echart 二.饼状图开发过程 1.添加插件 echart cnpm install echarts --save 2.创建组件 ...

  6. vue+echarts饼状图中间计算总数

    饼状图中间显示总数值,效果图如下: dom结构: <div class="chart1" ref="chart1" style="width: ...

  7. echarts饼状图的使用

    echarts饼状图的使用 地址:https://echarts.apache.org/zh/index.html 第一步: 通过 npm 获取 echarts, npm install echart ...

  8. 去掉Echarts饼状图的引导线

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>五分钟 ...

  9. echars ajax 饼状图,echarts饼状图实现方法

    当前位置:我的异常网» Web前端 » echarts饼状图实现方法 echarts饼状图实现方法 www.myexceptions.net  网友分享于:2015-09-27  浏览:0次 echa ...

  10. echarts饼状图引导线加圆点

    实现echarts饼状图引导线加圆点实现思路: 1.首先我们在series里设置三个饼状图,设置共有的数据来防止页面交互显示错位问题 设置minAngle 最小区域扇面角度防止多个数据为0时候引导线会 ...

最新文章

  1. 南方医科大学珠江医院检验医学部生物信息分析师招聘启示
  2. source insight 常用设置及快捷键
  3. python获取键盘事件_50-用Python监听鼠标和键盘事件
  4. Python使用装饰器捕获异常,并写入日志,不中断进程
  5. postgresql获取表最后更新时间(通过触发器将时间写入另外一张表)
  6. linux里用户权限:~$,/$,~#,/#的区别与含义
  7. 机器学习笔记(参考吴恩达机器学习视频笔记)16_决策树
  8. 零基础学习Java的路线,学完上岸BAT!
  9. 跨数据库分布式实时事务 - 基于RabbitMQ实时消息队列服务实现
  10. C++实现尺取法——以彩色宝石项链为例
  11. 运行提速:让电脑从拖拉机引擎变成宝马引擎必备知识
  12. 面试官问:除了ArrayList你还看过哪些List源码
  13. Matlab2018a崩溃解决的办法No sandbox or build area path
  14. [FZSZOJ 1223] 上海红茶馆
  15. LiveUpdate Adminstrator配置手册
  16. python爬取网页json数据_python爬取json数据库
  17. c 语言pets进步天梯题目,2017年9月公共英语一级pets考试样题解析
  18. 2020美团点评暑期实习一面
  19. 空间数据+AI,让建筑学会自己“思考”
  20. 软件设计原则:正确做小事

热门文章

  1. 华为员工晒百万收入,网友:看来我对华为也有误解
  2. 企业数据总线(ESB)和注册服务管理(dubbo)的区别{{1033}}
  3. linux下du和df结果不一致的原因及处理
  4. 图灵机器人Web API
  5. java jdk运行_JDK如何运行
  6. outlook邮箱邮件内容乱码_outlook邮件乱码怎么转换
  7. 研究生学历,毕业就给房!给户口!
  8. 完整的网站前端+源码模板
  9. 【HAOI2009】【毛毛虫】【树形dp】
  10. idea快速创建serilizableuid