您现在的位置是:网站首页 > 脚本编程>

thinkphp实现评论柱状图统计

2015-04-17841人围观
简介


<?php

/*
* php生成柱状统计图程序
* $data 二维数组形式的数据
* $twidth 柱形宽度
* $tspace 两个柱形之间的距离
* $height 柱状图的高度
*/
$data=array(120,300);
$font=array("好评","差评");
$max=max($data);
createImage($data,15,45,$max+40,$font);
function createImage($data,$twidth,$tspace,$height,$font){
    header("Content-Type:image/png");
    $dataname=array();
    $datavalue=array();//data里面的值
    $i=0;
    $j=0;
    $k=0;
    $num=sizeof($data);
    $fnum=sizeof($font);
    foreach($data as $key=>$val){
        $datavalue[]=$val;
    }
    
    foreach($font as $k=>$v){
        $dataname[]=$v;
    }
    $width=$num*($twidth+$tspace)+65 ;//获取图像的宽度
    
    $d=max($data);
    if($d > 300)
    {
        $im=imagecreate(185,160);//创建图像
    }else{
        $im=imagecreate($width,$height);//创建图像
    }
    
    
    $bgcolor=imagecolorallocate($im,255,255,255);//背景色
    
    imagefill($im , 0 , 0, $bgcolor);//把画布染成白色
    imagecolortransparent($im ,$bgcolor );//把图片中白色设置为透明色
    
    $jcolor=imagecolorallocate($im,64,135,217);//矩形的背景色 蓝
    $js=imagecolorallocate($im,193,59,56);//矩形的背景色 红
    $acolor=imagecolorallocate($im,0,0,0);//线的颜色
    while($i<$num){
        if($datavalue[$i]>300)
        {
        
        if($i==1)
        {//画矩形
        imagefilledrectangle($im,$i*($tspace+$twidth)+40,20,$i*($twidth+$tspace)+$tspace+40,140,$js);
        }else{
        imagefilledrectangle($im,$i*($tspace+$twidth)+40,20,$i*($twidth+$tspace)+$tspace+40,140,$jcolor);
        }
        imagestring($im,3,$i*($tspace+$twidth)+50+$twidth/2,160-120-35,$datavalue[$i],$acolor);//在柱子上面写出值
        imagettftext($im,14,0,$i*($tspace+$twidth)+36+$twidth/2,160-3,$acolor,"./simhei.ttf",$dataname[$i]);//在柱子下面写出值
        
        }else{
        
        if($i==1)
        {//画矩形
        imagefilledrectangle($im,$i*($tspace+$twidth)+40,$height-$datavalue[$i]-20,$i*($twidth+$tspace)+$tspace+40,$height-21,$js);
        }else{
        imagefilledrectangle($im,$i*($tspace+$twidth)+40,$height-$datavalue[$i]-20,$i*($twidth+$tspace)+$tspace+40,$height-21,$jcolor);
        }
        imagestring($im,3,$i*($tspace+$twidth)+50+$twidth/2,$height-$datavalue[$i]-35,$datavalue[$i],$acolor);//在柱子上面写出值
        imagettftext($im,14,0,$i*($tspace+$twidth)+36+$twidth/2,$height-3,$acolor,"./simhei.ttf",$dataname[$i]);//在柱子下面写出值
        }
        
        $i++;
    }
    imagepng($im);

}

打赏本站,你说多少就多少

精彩评论

Copyright © 2013-2019 千奇博客 保留所有权利 辽ICP备13008238号