Echarts餅狀圖交互數據

前面寫到一個關於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>
 
5640239-6b1484cec90c80a6.png
 

原文做者:祈澈姑娘 
90後前端妹子,愛編程,愛運營,文藝與代碼齊飛,魅力與智慧共存的程序媛一枚。

html

相關文章
相關標籤/搜索