用php+ajax+echarts.js 实现统计每分钟答题曲线图

接着上一篇博客,除了实现统计总量外,我还用百度的echart实现了 统计答题曲线图。效果如下:http://newer.gailvlunpt.com/EntranceEducation/admin.php/Statis/index

 

 

百度echart是一个专业的花统计图,曲线图的第三方js类库。按照使用说明使用还是蛮简单的。

 

源代码如下

前端 html+js+css代码如下

  1 {__NOLAYOUT__}
  2 <!DOCTYPE html>
  3 <html>
  4 <head>
  5     <meta charset="utf-8">
  6     <!-- 引入 ECharts 文件 -->
  7     <script src="__PUBLIC__/admin/js/echarts.common.min.js"></script>
  8     <script src="__PUBLIC__/admin/js/jquery.min.js"></script>
  9 </head>
 10 <body>
 11     <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
 12     <div id="main" style="width: 1400px;height:600px;"></div>
 13     <a href="{:U('sum')}" target="_blank">实时统计平台答题总量</a>
 14 
 15 
 16 </body>
 17 </html>
 18 
 19 <script type="text/javascript">
 20 
 21 
 22 
 23 
 24 var myChart = echarts.init(document.getElementById('main'));
 25 option = {
 26     title : {
 27         text: '过去3小时答题情况',
 28         subtext: '浙江工商大学新生事业教育平台试试答题数据'
 29     },
 30     tooltip : {
 31         trigger: 'axis'
 32     },
 33     legend: {
 34         data:['过去3小时答题量']
 35     },
 36     
 37     calculable : true,
 38     xAxis : [
 39         {
 40             type : 'category',
 41             boundaryGap : false,
 42             data : []
 43         }
 44     ],
 45     yAxis : [
 46         {
 47             type : 'value',
 48             axisLabel : {
 49                 formatter: '{value}'
 50             }
 51         }
 52     ],
 53     series : [
 54         {
 55             name:'实时答题统计',
 56             type:'line',
 57             data:[],
 58         },
 59         
 60     ]
 61 };
 62 
 63 
 64  // 使用刚指定的配置项和数据显示图表。
 65 
 66 url = "{:U('Statis/data')}";
 67 myChart.setOption(option);
 68 // url = 'http://newer.gailvlunpt.com/EntranceEducation/admin.php/Statis/data';
 69 
 70 $.get(url).done(function (data) {
 71         // 填入数据
 72     myChart.setOption({
 73         xAxis: {
 74             data: data.x_data
 75         },
 76         series: [{
 77             // 根据名字对应到相应的系列
 78             data: data.y_data
 79         }]
 80     });
 81 });
 82 
 83     
 84 setInterval(function () {
 85     
 86     $.get(url).done(function (data) {
 87         // 填入数据
 88         myChart.setOption({
 89             xAxis: {
 90                 data: data.x_data
 91             },
 92             series: [{
 93                 // 根据名字对应到相应的系列
 94                 data: data.y_data
 95             }]
 96         });
 97     });
 98 
 99 }, 60000);  //一秒钟统计一次
100 
101 
102 
103 
104 
105 </script>

 

后台php代码

 1 public function data() {
 2         
 3         $now = time();
 4         // $timeArray = new array();
 5         for($i=1;$i<=180;$i++){
 6             
 7             $time = $now - 3 * 60 * 60 + 60 * $i;
 8             $timeArray[] = date('Y-m-d H:i', $time);
 9 
10             
11             $map['time']  = array('between',array(date('Y-m-d H:i', $time),date('Y-m-d H:i', $time+60)));
12             $dataArray[] = D('Exercise')->where($map)->count();
13         }
14 
15         $data = array(
16             'x_data'=>$timeArray, 
17             'y_data'=>$dataArray
18         );
19         
20         $this->ajaxReturn($data);
21     }

 

用每时间分钟作为横坐标,答题数据量作为纵坐标 画图

转载于:https://www.cnblogs.com/hello-lijj/p/7874780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值