echarts多列柱状图求合计,并且展示在最顶端
来源:互联网 发布:艾默生ups监控软件 编辑:程序博客网 时间:2024/06/02 02:47
思路一:给series集合末尾多加一栏用于展示合计,但是值都是0;
缺点:必须根据xAxis的data生成一组为空的数据,且tooltip不能加trigger: ‘axis’,这个条件,不然会展示合计:0。
数据为模拟数据,已经实现ajax后台动态传数据,但这里不做细讲,主要研究echarts的js求和方法。
完整代码如下:
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ECharts1</title> <!-- 引入 echarts.js --> <script src="https://cdn.bootcss.com/echarts/3.5.4/echarts.min.js"></script></head><body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 1600px;height:800px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); //定义图表option var option = { tooltip : { axisPointer : { type : 'shadow' } }, title: { text:'xxx激活设备数', left:'left' , top:'10px', textStyle: { color: '#666', fontWeight: 'normal' } }, toolbox: { feature: { dataView: {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore: {show: true}, saveAsImage: {show: true} } }, grid: { y: '10%', y2: '10%' }, legend: { data:['安卓','诺基亚','苹果'] }, xAxis:{ type: 'category', axisLabel:{ interval: 0, // {number} rotate: 40 }, data: ['星期三','星期四'] }, yAxis:{ type: 'value', min: 0, interval: 10000 }, series: [ { name:'安卓', type:'bar', stack:'xxx', itemStyle: { normal: { color: '#548dd5' } }, data: [["星期三",10000],["星期四",20000]] }, { name:'诺基亚', type:'bar', stack:'xxx', itemStyle: { normal: { color: '#000' } }, data: [["星期三",11000],["星期四",21000]] }, { name:'苹果', type:'bar', stack:'xxx', itemStyle: { normal: { color: '#e56c0a' } }, data: [["星期三",12000],["星期四",18000]] }, { name:'合计', type:'bar', stack:'xxx', label: { normal: { show: true, position: 'top', textStyle: { color: '#000' }, formatter:'' } }, data: [["星期三",0],["星期四",0]] //思路一:给series集合末尾多加一栏用于展示合计,但是值都是0;缺点:必须根据xAxis的data生成一组为空的数据,且tooltip不能加trigger: 'axis',这个条件,不然会展示合计:0 } ]}; var series = option["series"]; var fun = function (params) { var data3 =0; for(var i=0,l=series.length;i<l;i++){ data3 += series[i].data[params.dataIndex][1] } return data3 } //加载页面时候替换最后一个series的formatter series[series.length-1]["label"]["normal"]["formatter"] = fun // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); //legend点击事件,根据传过来的obj.selected得到状态是true的legend对应的series的下标,再去计算总和 myChart.on("legendselectchanged", function(obj) { var b = obj.selected , d = []; //alert(JSON.stringify(b)) for(var key in b){ if(b[key]){ //alert(key) for(var i=0,l=series.length;i<l;i++){ var changename = series[i]["name"]; if(changename == key){ d.push(i);//得到状态是true的legend对应的series的下标 } } } } var fun1 = function (params) { var data3 =0; for(var i=0,l=d.length;i<l;i++){ for(var j=0,h=series.length;j<h;j++){ if(d[i] == j){ data3 += series[j].data[params.dataIndex][1] //重新计算总和 } } } return data3 } series[series.length-1]["label"]["normal"]["formatter"] = fun1 myChart.setOption(option); }) </script></body></html>
最终效果图如下:
阅读全文
0 0
- echarts多列柱状图求合计,并且展示在最顶端
- echart,柱状图多列的展示
- 关于echarts柱状图的问题:主要动态展示多条
- echarts-多柱子柱状图
- echarts-多柱子柱状图
- Echarts柱状图
- echarts-柱状图
- echarts 柱状图
- echarts柱状图
- echarts-柱状图
- echarts柱状图
- 让div 层在最顶端
- echarts柱状图自适应宽高 多图表
- 多列柱状图生成JfreeChart
- Echarts柱状图在label上添加点击事件
- 如何使用Echarts将头条抓取结果以柱状图和饼形图展示?
- 百度ECharts---android在线展示统计图表(折线图\柱状图\饼状图)
- vue 中使用vue-echarts-v3编写chart柱状图,动态展示数据
- spring boot 之热部署
- GlusterFS安装及集群规划
- error: “Font”: 不明确的符号
- Eureka 源码解析 —— StringCache
- 合并两个有序列表的循环和递归实现
- echarts多列柱状图求合计,并且展示在最顶端
- win redis 安装 基本操作 设置密码
- git版本控制初始
- try exception 捕获异常
- 各种语言一句话反弹shell
- Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
- Linxu环境下ZooKeeper的集群搭建之详细教程
- 对于电子签名、CA、证书的理解
- vim设置配色方案