1. 程式人生 > >Echarts 動態從後臺獲取資料進行圖表的展示

Echarts 動態從後臺獲取資料進行圖表的展示

前端部分:


<!DOCTYPE html>
 
<head>
<meta charset="utf-8">
<title>ECharts</title>
</head>
 
<body>
    <!-- 為ECharts準備一個具備大小(寬高)的Dom -->
    <div id="main"style="width: 800px; height: 300px"></div>
    <!-- ECharts單檔案引入 -->
    <script type="text/javascript"src="js/jquery-2.1.4.min.js"></script>
    <script type="text/javascript"src="build/dist/echarts.js"></script>
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        // 路徑配置
        require.config({
            paths : {
                echarts : 'build/dist'
            }
        });
 
        // 使用
        require(['echarts','echarts/chart/bar'// 使用柱狀圖就載入bar模組,按需載入
        ], function(ec) {
            // 基於準備好的dom,初始化echarts圖表
            var myChart = ec.init(document.getElementById('main'));
            var option = {
                tooltip : {
                    show : true
                },
                legend : {
                    data : []
                },
                xAxis : [ {
                    type : 'category',
                    data : []
                } ],
                yAxis : [ {
                    type : 'value'
                } ],
                series : []
            };
            $.ajax({
                type : "POST",
                url : "gettestdata",
                dataType : "json",
                success : function(result) {
                    //將從後臺接收的json字串轉換成json物件
                    var jsonobj = eval(result);
                    //給圖示標題賦值
                    option.legend.data = jsonobj.legend;
                    //讀取橫座標值
                    option.xAxis[0].data = jsonobj.axis;
                    var series_arr = jsonobj.series;
                    //驅動圖表生成的資料內容,陣列中每一項代表一個系列的特殊選項及資料
                    for(var i = 0; i < series_arr.length; i++) {
                        option.series[i] = result.series[i];
                    }
                    //過渡控制,隱藏loading(讀取中)
                    myChart.hideLoading();
                     // 為echarts物件載入資料
                    myChart.setOption(option);
                }
            });
        });
    </script>
</body>
</html>