实现echarts内外圈联动

Posted sunbinary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现echarts内外圈联动相关的知识,希望对你有一定的参考价值。

 //控制都是通过控制series中data的name,那么将内外圈需要同事控制的部分设置为一样的名字,就可以实现内外圈联动。

 //但是在name相同时,会使默认分配颜色时相同,使颜色不好看,这里就需要给data自己分配颜色。

app.title = ‘嵌套环形图‘;
var colors=[
                    ‘#6EB6F2‘,‘#71F16F‘,‘#FFC000‘,‘#384C6C‘,‘#7577F8‘,
                    ‘#003366‘,‘#AEABAF‘,‘#00F4D2‘,‘#8084F1‘,‘#FF9F4E‘,
                    ‘#4FA2A9‘,‘#9a7fd1‘,‘#588dd5‘,‘#f5994e‘,‘#c05050‘,
                    ‘#59678c‘,‘#c9ab00‘,‘#7eb00a‘,‘#6f5553‘,‘#c14089‘,
                    ‘#FF4F7F‘,‘#CC6666‘,‘#7f7522‘,‘#2b4490‘,‘#333399‘,
                    ‘#70a19f‘,‘#009299‘,‘#78331e‘,‘#3e4145‘,‘#7bbfea‘,
                    ‘#339999‘,‘#8f4b38‘,‘#694d9f‘,‘#f26522‘,‘#8e7437‘,
                    ‘#45b97c‘,‘#74787c‘,‘#afdfe4‘,‘#fdb933‘,‘#bed742‘,
                    ‘#A20055‘,‘#AA0000‘,‘#C63300‘,‘#0000AA‘,‘#2200AA‘,
                    ‘#990099‘,‘#00AAAA‘,‘#00AA88‘,‘#00AA55‘,‘#FF1493‘
                ];


option = {
    tooltip: {
        trigger: ‘item‘,
        formatter: "{a} <br/>{b}: {c} ({d}%)"
    },
    legend: {
        orient: ‘vertical‘,
        x: ‘left‘,
        data:[‘直达‘,‘营销广告‘,‘搜索引擎‘,‘邮件营销‘,‘联盟广告‘,‘视频广告‘,‘百度‘,‘谷歌‘,‘必应‘,‘其他‘]
    },
    series: [
        {
            name:‘访问来源‘,
            type:‘pie‘,
            selectedMode: ‘single‘,
            radius: [0, ‘30%‘],

            label: {
                normal: {
                    position: ‘inner‘
                }
            },
            labelLine: {
                normal: {
                    show: false
                }
            },
            data:[
                {value:335, name:‘直达‘, selected:true},
                {value:679, name:‘营销广告‘},
            ]
        },
        {
            name:‘访问来源‘,
            type:‘pie‘,
            radius: [‘40%‘, ‘55%‘],
            label: {//默认的label显示时,是显示名字,如果希望内外圈显示的label不同,可以通过自己构建label函数。
                normal:{
                      formatter:function (params) {
                      if(params.value != 0)
                          return params.data.name;
                      else
                          return ‘‘;
                  }
                  }
            },
            data:[
                {value:335, name:‘直达‘,type:"直达",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:310, name:‘直达‘,type:"邮件营销",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:234, name:‘直达‘,type:"联盟广告",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:135, name:‘直达‘,type:"视频广告",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:1048, name:‘营销广告‘,type:"百度",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:251, name:‘营销广告‘,type:"谷歌",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:147, name:‘营销广告‘,type:"必应",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}},
                {value:102, name:‘营销广告‘,type:"其他",itemStyle:{
                        normal:{
                            color:colors[Math.floor(40*Math.random())]
                        }}}
            ]
        }
    ]
};

 

以上是关于实现echarts内外圈联动的主要内容,如果未能解决你的问题,请参考以下文章

echarts能实现多图联动吗

ECharts 报表事件联动系列三:柱状图,饼状图实现联动

echarts柱状图、饼图实现数据联动

ECharts 报表事件联动系列一:刷新页面

Echarts 之三 —— 地市联动数据统计二

vue table中使用多选的问题(翻页后如何保存已选项),联动echarts图表实现流量监控