Echarts通過Ajax實現動態數據加載


最近開發項目用到echarts圖表展示數據信息,需要調用后台接口,寫一篇博客來記錄一下實現過程,末尾附源碼

 

首先准備一個json文件echarts.json(名字無所謂),用來模擬從后台獲取數據 

 

第二步上echarts官網下載,或直接引用生成圖表用到的js,這里給出官網:https://www.echartsjs.com/index.html

然后在頁面直接引用  

這里給出echarts.js的下載鏈接:https://echarts.baidu.com/dist/echarts.min.js

 

第三步在body中准備一個容器,用來顯示圖表

 

緊接着在js中初始化echarts對象,直接上代碼

<script type="text/javascript">
            var container = document.getElementById('container');
            // 初始化加載對象myContainer
            var myContainer = echarts.init(container);
            //未獲取數據前,顯示loading加載動畫
            myContainer.showLoading();

            function bindData() {
                //為了效果明顯,我們做了延遲讀取數據
                setTimeout(function() {
                    //異步加載數據,get請求我們剛剛准備的json文件,正式開發中調用相應的接口
                    $.get('js/echarts.json', function(res) {
                        console.log(res)
                        //獲取數據后,隱藏loading動畫
                        myContainer.hideLoading();
                        myContainer.setOption(option = {
                            title: {
                                text: 'echartsLoading加載'
                            },
                            tooltip: {},
                            legend: {},
                            // xAxis代表x軸的數據
                            xAxis: {
                                data: res.name,
                                // 字段對應從json里面的字段
                            },
                            // yAxis代表y軸的數據,不寫會自動適應數據
                            yAxis: {},
                            // series代表鼠標懸浮到圖標上時提示的對應信息
                            series: [{
                                name: '訪問量',
                                type: 'bar',
                                data: res.data,
                                // 字段對應從json里面的字段
                            }]
                        });
                    })
                }, 2000)
            }
            bindData();
        </script>

看到這里如果能生成一個柱狀圖,那么恭喜你已經可以從后台獲取數據了

 

如果還沒有的話就看全部代碼吧,加油哦

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>echarts-異步加載數據</title>
        <link rel="stylesheet" href="11.scss">
        <script src="js/eacher.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/new_file.js" type="text/javascript" charset="utf-8"></script>
        <style>
            #container{
                width: 500px;
                height: 400px;
                border: 1px solid #ccc;
                /*background-color: #ccc;*/
            }
    </style>
    </head>
    <body>
        <div id="container"></div>
        <!--  -->
        <script type="text/javascript">
            var container = document.getElementById('container');
            // 初始化加載對象myContainer
            var myContainer = echarts.init(container);
            //未獲取數據前,顯示loading加載動畫
            myContainer.showLoading();

            function bindData() {
                //為了效果明顯,我們做了延遲讀取數據
                setTimeout(function() {
                    //異步加載數據,get請求我們剛剛准備的json文件,正式開發中調用相應的接口
                    $.get('js/echarts.json', function(res) {
                        console.log(res)
                        //獲取數據后,隱藏loading動畫
                        myContainer.hideLoading();
                        myContainer.setOption(option = {
                            title: {
                                text: 'echartsLoading加載'
                            },
                            tooltip: {},
                            legend: {},
                            // xAxis代表x軸的數據
                            xAxis: {
                                data: res.name,
                                // 字段對應從json里面的字段
                            },
                            // yAxis代表y軸的數據,不寫會自動適應數據
                            yAxis: {},
                            // series代表鼠標懸浮到圖標上時提示的對應信息
                            series: [{
                                name: '訪問量',
                                type: 'bar',
                                data: res.data,
                                // 字段對應從json里面的字段
                            }]
                        });
                    })
                }, 2000)
            }
            bindData();
        </script>
    </body>
</html>

json文件

{
    "name":["iso","english","china","ufo","seo"],
    "data":[400,200,300,100,11]
}

效果圖

 


免責聲明!

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



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