前面寫到一個關於Echarts餅狀圖交互數據的例子,可是當時name是寫死的,如今的value和name都是須要從後端獲取,而後渲染在界面,大體的json數據是這樣的:
模擬一個json格式的數據:javascript
{"list":[{"value":"管理","name":40}, {"value":"鍊鋼工","name":30}, {"value":"焊工","name":36}, {"value":"操做工","name":31}]}
開始寫ajax+json數據模擬一個demo,僅供參考,代碼以下:css
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>餅狀圖數據交互</title> <!-- 引入 echarts.js --> <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> <script src="https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js" type="text/javascript"></script> </head> <body> <!-- 爲ECharts準備一個具有大小(寬高)的Dom --> <div id="main" style="width: 400px;height:300px;"></div> <script type="text/javascript"> // 基於準備好的dom,初始化echarts實例 var myChart = echarts.init(document.getElementById('main')); function hrFun(param) { myChart.setOption({ tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, legend: { /* orient: 'vertical', x: 'right', y: 'bottom', textStyle: { //圖例文字的樣式 color: '#0b2b5e', fontSize: 12 },*/ }, series: [{ name: '訪問來源', type: 'pie', radius: ['50%', '70%'], avoidLabelOverlap: false, data: [ ] }] }); myChart.showLoading(); //數據加載完以前先顯示一段簡單的loading動畫 var names = []; //類別數組(用於存放餅圖的類別) var brower = []; $.ajax({ type: 'get', url: 'data.json', //請求數據的地址 dataType: "json", //返回數據形式爲json success: function(result) { //請求成功時執行該函數內容,result即爲服務器返回的json對象 $.each(result.list, function(index, item) { names.push(item.value); //挨個取出類別並填入類別數組 brower.push({ name: item.value, value: item.name }); }); myChart.hideLoading(); //隱藏加載動畫 myChart.setOption({ //加載數據圖表 legend: { data: names }, series: [{ data: brower }] }); }, error: function(errorMsg) { //請求失敗時執行該函數 alert("圖表請求數據失敗!"); myChart.hideLoading(); } }); } hrFun(); </script> </body> </html>
原文做者:祈澈姑娘
90後前端妹子,愛編程,愛運營,文藝與代碼齊飛,魅力與智慧共存的程序媛一枚。
html