需求:
项目需要做一个最近二十四小时数据展示的图,我们采用jpgraph进行绘图,采用X轴为hour(最近的24个小时),Y轴为值,其中'-'表示没有值.没有值的用'-'表示折线中间不会间断,此文仅为记录使用,以便日后参考,如果有更好的办法的朋友可以把自己的想法写出来大家共同交流,共同学习。
得到的数据:$tmpdata=array(12=>23,13=>24,15=>12,16=>6,17=>23);//key表示hour
得到X轴Y轴数据的代码:
$limit_hour=0;
$max_hour=max(array_keys($tmpdata));
$StartTime = strtotime ( $StartTime );
$EndTime = strtotime ( $EndTime );
$max_point = 24 / $Rate;
$cur_point = 0;
while ( $StartTime <= $EndTime ) {
$xtmp = date ( 'G', $StartTime );
if (isset ( $tmpdata [$xtmp] ) && $xtmp>=$limit_hour && $cur_point < $max_point) {
$ydata [] = $tmpdata [$xtmp];
$m = $Rate - $xtmp % $Rate;//rate为区间段,比如为4,即为4个小时内只描一个点
$limit_hour=$xtmp+$m;
$cur_point ++;
} else {
$ydata [] = '-';
}
if($xtmp>=$max_hour){
$limit_hour=0;
}
$StartTime += $one;
$xdata [] = $xtmp;
}
jpgraph生成图代码参照: jpgraph绘图之Y轴坐标倒排序