饼图数据为0或者太小显示如下,不美观

解决办法:

为0的去掉,小于0.005的累加起来

方法

function getsData(_rowData){
var rowData=JSON.parse(JSON.stringify(_rowData))
var sum=rowData.reduce(function(o,v,i){
o+=parseFloat(v.value);
return o;
},0)
if(isNaN(sum)||sum==0){return []}
rowData.sort(function(a,b){
return a.value-b.value;
}).reverse();
var val=0;//其他的相加
for(var i=rowData.length-1;i>0;i--){
var _row=rowData[i],sub;
sub=_row.value/sum;
//如果为0或者小于.05的比例就将此元素移除
if(sub<0.005){
rowData.length=i;//去掉最后一个
val+=parseFloat(_row.value);
}
}
//在后面追加一个其他的项
if(val>0){
rowData[length].name="其他";
rowData[length].value=val;
}
return rowData;
}

效果图

完整的option

var testData=[
{value:3331, name:'直接访问'},
{value:3110, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:0, name:'联盟广告'},
{value:10, name:'联盟广告1'},
{value:10, name:'联盟广告22'},
{value:10, name:'联盟广告122'},
{value:10, name:'联盟广告333'},
{value:20, name:'联盟广告3'},
{value:10, name:'联盟广告4'},
{value:11135, name:'视频广告'},
{value:11548, name:'搜索引擎'}
],
option = {
title : {
text: '某站点用户访问来源',
subtext: '纯属虚构',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
},
series : [
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:getsData(testData),
//data:testData,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
function getsData(_rowData){
var rowData=JSON.parse(JSON.stringify(_rowData))
var sum=rowData.reduce(function(o,v,i){
o+=parseFloat(v.value);
return o;
},0)
if(isNaN(sum)||sum==0){return []}
rowData.sort(function(a,b){
return a.value-b.value;
}).reverse();
var val=0;//其他的相加
for(var i=rowData.length-1;i>0;i--){
var _row=rowData[i],sub;
sub=_row.value/sum;
//如果为0或者小于.05的比例就将此元素移除
if(sub<0.005){
rowData.length=i;//去掉最后一个
val+=parseFloat(_row.value);
}
}
//在后面追加一个其他的项
if(val>0){
rowData[length].name="其他";
rowData[length].value=val;
}
return rowData;
}

echart 饼图数据为0不显示或者太小显示其他的解决办法的更多相关文章

  1. IIS7.5中调试.Net 4.0网站出现无厘头500错误的解决办法 (转)

    刚刚 部署了ii7的dll的有x86写的,就会出现以下这样的问题 iis 7 x86,Could not load file or assembly 'Name' or one of its depe ...

  2. Nested Loops join时显示no join predicate原因分析以及解决办法

    本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...

  3. Visual Studio 2010 起始页中 不显示最近使用的项目问题,解决办法

    最近新装了vs2010,发现打开vs2010 后 起始页面中的最近使用的栏目中 并未显示最近加载的项目 解决办法如下: 运行 regedit 打开下面的键值: HKEY_CURRENT_USER/So ...

  4. Duplicate entry '0' for key 'PRIMARY'的一种可能的解决办法

    在MySQL设计好数据库往往数据库中插入数据的时候, 因为主键ID默认是不赋值的,只给其他项目赋值了,相关的SQL代码是这样的 StringBuilder strSql = new StringBui ...

  5. Oracle数据泵导入dmp文件,报UDI-12154、ORA-12154错误解决办法

    1. 数据泵导入dmp文件,报UDI-12154.ORA-12154 1.1 导入命令 impdp cwy_init/init@orcl directory=DATA_PUMP_DIR dumpfil ...

  6. [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...

    一.问题: 之前写的一款安卓4.4的应用程序,用来连接蓝牙BLE,而现在拿出来用新的AS编译(此时SDK为6.0,手机也是6.0)应用程序并不能搜索到蓝牙,查看log总是报权限错误: Need ACC ...

  7. SlidesJS 3.0.4 在手机上遇到的一些问题及解决办法

    SlidesJS 3.0.4 http://slidesjs.com 在手机上遇到的一些问题及解决办法 1.手机上打开有sliderjs的页面后, 切换到别的页面再回来时, sliderjs部分不能滑 ...

  8. 打开局域网项目,显示“项目位置不受信任”的解决办法(VS2008)

    弄了几天,网上搜了个遍,愣是解决不了,绝望的时候闭着眼睛胡搞,居然解决了,哈哈.... 开发环境:visual studio 2008 项目位置:局域网其他电脑内 出现问题: 1.弹出“”的对话框,如 ...

  9. VC++6.0在win8.1系统下运行失败的解决办法

    在win8.1系统下安装了VC++6,.0编译软件之后,发现打不开.出现下面的错误: 解决办法: 安装文件目录:Microsoft Visual Studio--common--MSDev98--Bi ...

随机推荐

  1. bootstrap 问题

    less; sass: css预处理:可以直接使用.css,也可以修改.less,生成定制化的css CDN: 服务,使用这个效果会更好.theme一般不引入,jquery一般在js之前引入. 使用b ...

  2. Ansible Ad-Hoc命令

    -a:传入模块的参数,不同的模块要传入的参数不同 -B SECOND:当任务放到后台执行异步任务,设置程序运行的超时时间,传入的是一个数值,单位秒 -C:测试该任务能否正常运行,不对被管理主机做出任何 ...

  3. delphi 升级到xe7后的一些个人经验

    http://blog.csdn.net/span12/article/details/42522091 你只要记住 字符串使用变了.VCL 下面所有的 char 改 ansichar string ...

  4. 抱SQL SERVER大腿之我爱用视图(对大数据量的管理)

    我们拥有一个巨大的表,两千多万条记录.也许在行家眼里,两千多万条记录顶多算条毛,不过这条毛也忒粗壮了一点:我们的数据库占用的空间已经达到5G多了.不要以为是日志文件在搞鬼,日志文件可以自动收缩的,最多 ...

  5. mod_pagespeed

    https://github.com/pagespeed/mod_pagespeed.git https://developers.google.com/speed/pagespeed/module/ ...

  6. .net core AOP之Filter

    当我们进行项目开发时,往往在开发过程中需要临时加入一些常用功能性代码,如身份验证.日志记录.异常获取等功能.如果每个方法中都加入这些功能性代码的话,无疑使项目显得过于臃肿,代码繁杂.这时候就要加入过滤 ...

  7. asp .net api 日志

    方法1:继承IExceptionLogger ExceptionLogger是框架提供的表示未处理的异常记录器的抽象类 public class RecordExceptionLogger : Exc ...

  8. Winform 搭建http服务器

    using System; using System.Collections; using System.IO; using System.Net; using System.Net.Sockets; ...

  9. OpenStack 虚机网卡的创建过程

    原文链接:https://www.cnblogs.com/potato-chip/p/9127083.html OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机. ...

  10. 简单版nginx lua 完成定向流量分发策略

    本文链接:https://www.cnblogs.com/zhenghongxin/p/9131362.html 公司业务前端是使用 “分发层+应用层” 双层nginx架构,目的是为了提高缓存的命中率 ...