用php+ajax+echarts.js 實現統計每分鐘答題曲線圖

來源:互聯網
上載者:User

接著上一篇部落格,除了實現統計總量外,我還用百度的echart實現了 統計答題曲線圖。效果如下:http://newer.gailvlunpt.com/EntranceEducation/admin.php/Statis/index

百度echart是一個專業的花統計圖,曲線圖的第三方js類庫。按照使用說明使用還是蠻簡單的。

原始碼如下

前端 html+js+css代碼如下

{__NOLAYOUT__}<!DOCTYPE html><html><head>    <meta charset="utf-8">    <!-- 引入 ECharts 檔案 -->    <script src="__PUBLIC__/admin/js/echarts.common.min.js"></script>    <script src="__PUBLIC__/admin/js/jquery.min.js"></script></head><body>    <!-- 為 ECharts 準備一個具備大小(寬高)的 DOM -->    <p id="main" style="width: 1400px;height:600px;"></p>    <a href="{:U('sum')}" target="_blank">即時統計平台答題總量</a></body></html><script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));option = {    title : {        text: '過去3小時答題情況',        subtext: '浙江工商大學新生事業教育平台試試答題資料'    },    tooltip : {        trigger: 'axis'    },    legend: {        data:['過去3小時答題量']    },        calculable : true,    xAxis : [        {            type : 'category',            boundaryGap : false,            data : []        }    ],    yAxis : [        {            type : 'value',            axisLabel : {                formatter: '{value}'            }        }    ],    series : [        {            name:'即時答題統計',            type:'line',            data:[],        },            ]}; // 使用剛指定的配置項和資料顯示圖表。url = "{:U('Statis/data')}";myChart.setOption(option);// url = 'http://newer.gailvlunpt.com/EntranceEducation/admin.php/Statis/data';$.get(url).done(function (data) {        // 填入資料    myChart.setOption({        xAxis: {            data: data.x_data        },        series: [{            // 根據名字對應到相應的系列            data: data.y_data        }]    });});    setInterval(function () {        $.get(url).done(function (data) {        // 填入資料        myChart.setOption({            xAxis: {                data: data.x_data            },            series: [{                // 根據名字對應到相應的系列                data: data.y_data            }]        });    });}, 60000);  //一秒鐘統計一次</script>



後台php代碼

public function data() {                $now = time();        // $timeArray = new array();        for($i=1;$i<=180;$i++){                        $time = $now - 3 * 60 * 60 + 60 * $i;            $timeArray[] = date('Y-m-d H:i', $time);                        $map['time']  = array('between',array(date('Y-m-d H:i', $time),date('Y-m-d H:i', $time+60)));            $dataArray[] = D('Exercise')->where($map)->count();        }        $data = array(            'x_data'=>$timeArray,             'y_data'=>$dataArray        );                $this->ajaxReturn($data);    }



用每時間分鐘作為橫座標,答題資料量作為縱座標 畫圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.