Suite au blog précédent, en plus d'implémenter des totaux statistiques, j'ai également utilisé l'echart de Baidu pour implémenter des courbes de réponses statistiques. L'effet est le suivant : http://newer.gailvlunpt.com/EntranceEducation/admin.php/Statis/index
Baidu echart est une bibliothèque js professionnelle tierce pour les graphiques statistiques et les graphiques de courbes. Il est assez simple à utiliser selon les instructions.
Le code source est le suivant
Le code front-end html+js+css est le suivant
{__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>
Le code php d'arrière-plan
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); }
utilise les minutes par fois comme abscisse et la quantité de données de réponse comme ordonnée pour dessiner un graphique
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!