echarts嵌套餅圖聯動實現


echarts嵌套餅圖聯動實現

效果解釋:當點擊內部餅圖時,外環餅圖會跟隨內部選擇的餅圖變化

效果圖:
效果圖

代碼:

<html>
<head>
    <title>嵌套餅圖聯動</title>
</head>
<script type="text/javascript" src="js/echarts.min.js"></script>
<body>
    <div id="_top" style="width:600px;height: 600px;"></div>
</body>
<script type="text/javascript"> var myecharts = echarts.init(document.getElementById('_top')); var option={ legend: { //圖例 show:false, //是否顯示圖例 orient: 'vertical', //布局方向 x: 'left', //圖例相對位置 data:['一班','二班','三班'] //圖例內容 }, series: [ //內容 { name:'班級人數占比', //內容標題 type:'pie', //圖標樣式 selectedMode: 'single', //選中模式:單選 radius: [0, '32%'], //餅圖大小,[x,y]:x表示內半徑,y表示外半徑  label: { //標簽 normal: { position: 'inner' //標簽位置:內部 } }, labelLine: { //提示框 normal: { show: false //是否顯示 } }, color:['#0A276D','#1040AF','#1F5DEA','#628CF0'], //顏色 name:['一班','二班','三班'], //內容名稱 data:[ //數據 {value:50,name:'一班',selected:true}, //selected:是否被選中 {value:46,name:'二班'}, {value:54,name:'三班'}, ], }, { name:'男女占比', type:'pie', radius: ['42%', '55%'], label: { normal: { } }, labelLine:{ normal:{ length:2, } }, color:['#205E3F','#16DA69','red'], data:[ {value:21,name:'男生'}, {value:29,name:'女生'}, ], label: { normal: { textStyle: { color: '#aaa' //提示框字體顏色 } } }, }], backgroundColor: "#190c12", //背景顏色 }; myecharts.setOption(option); //嵌套餅圖聯動 function eConsole(param) { if (typeof param.seriesIndex != 'undefined') { if (param.type == 'click') { //判斷事件類型:點擊 //寫法一:獲取餅圖散區個數,按照圖例獲取  var peiLenght= option.legend.data.length; //寫法二:獲取餅圖散區個數,按照series中data獲取 //var peiLenght= option.series[0].data.length; for(var i=0;i<peiLenght;i++){ //seriesIndex==0:選擇內環餅圖;param.dataIndex==i:散區 if(param.seriesIndex==0&&param.dataIndex==i){ if(i==0){ var option_1 = myecharts.getOption(); option_1.series[1].name='一班男女占比'; option_1.series[1].color=['#205E3F','#16DA69','red'], option_1.series[1].data=[ {value:21,name:'男生'}, {value:29,name:'女生'}, ]; myecharts.setOption(option_1); }else if(i==1){ var option_2 = myecharts.getOption(); option_2.series[1].name='二班男女占比'; option_2.series[1].color=['#16DA69','#205E3F','red'], option_2.series[1].data=[ {value:20,name:'男生'}, {value:26,name:'女生'}, ]; myecharts.setOption(option_2); }else if(i==2){ var option_3 = myecharts.getOption(); option_3.series[1].name='三班男女占比'; option_3.series[1].color=['blue','pink','red'], option_3.series[1].data=[ {value:30,name:'男生'}, {value:24,name:'女生'}, ]; myecharts.setOption(option_3); } } } } } } myecharts.on("click", eConsole); </script>
</html>

分析:
嵌套餅圖聯動實現 原理:是兩個餅圖由於內外半徑大小控制而形成的,然后對於兩個餅圖進行不同的賦值,取得了嵌套的效果,再對內部餅圖進行點擊事件監控,餅圖散區被點擊后,外部餅圖采取相對變化,便實現了內外餅圖的聯動效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM