echart玫瑰图比例较小时,增加半径

原理是先把数据加大并且半径扩大20%(图1),展示数据的时候再把数据还原(图2)及比例还原(图3)
在这里插入图片描述
图1
在这里插入图片描述
图2
在这里插入图片描述
图3

var nData =[
                {value:1, name:'直接访问1'},
                {value:30, name:'邮件营销1'},
                {value:30, name:'联盟广告1'},
                {value:50, name:'视频广1告'},
                {value:2, name:'搜索引擎1'}
            ]
var showData =[]
var totalVal = 0;
var maxVal = 0;

nData.forEach(function(a){
    totalVal +=a.value
    if(a.value>=maxVal) maxVal = a.value
})

var showMore = Math.round(maxVal*0.2)

var showData=nData.map(si=>{
    return {
        value : showMore+si.value,
        name:si.name
    }
})

option = {
    backgroundColor: '#2c343c',

    title: {
        text: 'Customized Pie',
        left: 'center',
        top: 20,
        textStyle: {
            color: '#ccc'
        }
    },

    tooltip : {
        trigger: 'item',
        formatter: function (param){
            return param.name+':'+ (param.value - showMore)+','+ (((param.value - showMore)/totalVal)*100).toFixed(0)+'%'
        }
    },

    visualMap: {
        show: false,
        min: 0,
        max: 50,
        inRange: {
            colorLightness: [0, 0.5]
        }
    },
    series : [
        {
            name:'访问来源',
            type:'pie',
            radius : '55%',
            center: ['50%', '50%'],
            data:showData,
            roseType: 'area',
          itemStyle: {
                                normal: {
                                    // color: '#c23531',
                                    shadowBlur: 200,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)',

                                    label:{
                                        show:true,
                                        // formatter: '{b} : {c} \n ({d}%)'
                                        formatter:function(param){ return (((param.value - showMore)/totalVal)*100).toFixed(0)+'%';}
                                    },
                                }
                            },

            animationType: 'scale',
            animationEasing: 'elasticOut',
            animationDelay: function (idx) {
                return Math.random() * 200;
            }
        }
    ]
};
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值