Echarts,饼图中怎么对数据进行判断,或者说怎么去掉数据为零的lableline

Enjoy720 2015-01-15 12:25:11
官方教程的Value直接是一个值。由于是用MVC开发,直接取出的值,但是当值为空的时候,饼图仍然会显示出一条线,如下图。我想实现的效果是在数据为零的时候不显示。代码如下:

series : [ {
name:'访问来源',
type:'pie',
radius : '55%',
center: ['50%', '60%'],
data:[
{value:@Model.Direct;, name:'直接访问'},
{value:@Model.Mail, name:'邮件营销'},
{value:@Model.Ad, name:'视频广告'},
{value:@Model.Search, name:'搜索引擎'}
],
itemStyle:{
normal:{
label:{
show: true,
formatter: '{b} : {c} ({d}%)'
},
labelLine :{show:true}
}
}
}
]
...全文
25314 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39548060 2017-07-18
  • 打赏
  • 举报
回复
引用 12 楼 u011768325 的回复:
http://blog.csdn.net/u011768325/article/details/73499299 大家可以看看这个,这个是我网上查找后整理的,亲测可用
有借鉴的地方,写出了怎么写在data里面,我改了一下没有引用jQuery()(老大要求页面引用的包越少越好) //在外面声明一个变量i1,data域里面的if()才能有用(试了半天,然后因为value正好是要动态获取的,就想到这了); var i1=0; var option = { ....... data:[ {value:i1, name:'直接访问',itemStyle:{ normal:{ label:{ show: function (){ if(i1 ===0){ return false; } return true }() }, labelLine: { show: function (){ if(i1 ===0){ return false; } return true }() } } }}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value:135, name:'视频广告'}, {value:1548, name:'搜索引擎'} ], 我懒,就发个修改的部分了啊,希望有用;
风过留痕丶 2017-06-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/u011768325/article/details/73499299 大家可以看看这个,这个是我网上查找后整理的,亲测可用
violae 2017-05-05
  • 打赏
  • 举报
回复
有人解决了吗??怎么写在data里面啊??
肥玉 2017-01-12
  • 打赏
  • 举报
回复
你那写错了!!function里面要写如参数value,不然会出错undefined itemStyle:{ normal:{ label:{ show: function(value){ if(value == 0.00) return false; }(), formatter: '{b} : {c} ({d}%)' }, labelLine :{ show:function(value){ if(value == 0.00) return false; }() } } }
肥玉 2017-01-12
  • 打赏
  • 举报
回复
normal: { label: { show: function () { if (value == 0.00) { return false; } } () }, labelLine: { show: function () { if (value == 0.00) { return false; } } () } }这个在函数后面加上括号是错误的!!!请问咋解决
beileixinqing 2017-01-03
  • 打赏
  • 举报
回复
求问 怎么就算 写在data域中了呀,我写的和data并列的,说value值找不到
月黑无尘 2016-04-08
  • 打赏
  • 举报
回复
求解决方法啊
Enjoy720 2015-01-16
  • 打赏
  • 举报
回复
问题已经解决了,用的1L的方法,将itemStyle写到data域中就行了。 其实之前也找到过该答案,跟1L的一模一样,同样是写在data域,可能是由于自己的JS水平太低,很多细节的东西不能理解(PS:基本不会),导致各种Demo都失败。有必要系统学习下JS了。
Enjoy720 2015-01-15
  • 打赏
  • 举报
回复
首先,感谢楼上两位的回复,我又去看了下官方其它图的代码,好像有点开窍了。我去继续钻研下,大家有好的方法也请发出来分享。
Enjoy720 2015-01-15
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
你不如在查询语句里直接筛选掉数据为0的数据,不查询 或者查询出来,在数据源里remove掉,再给图表
这个项目用的是MVC开发,有一个专门统计数据的Model,查询出来的数据用的强类型,通过@Model.Value直接调用的
於黾 2015-01-15
  • 打赏
  • 举报
回复
你不如在查询语句里直接筛选掉数据为0的数据,不查询 或者查询出来,在数据源里remove掉,再给图表
tianliuheng_12 2015-01-15
  • 打赏
  • 举报
回复
normal: { label: { show: function () { if (value == 0.00) { return false; } } () }, labelLine: { show: function () { if (value == 0.00) { return false; } } () } }

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧