您的位置:首页 > 编程语言 > PHP开发

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

2018-04-02 15:06 447 查看
接着上一篇博客,除了实现统计总量外,我还用百度的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 -->
<div id="main" style="width: 1400px;height:600px;"></div>
<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);
}

用每时间分钟作为横坐标,答题数据量作为纵坐标 画图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: