php GD绘制24小时柱状图


Posted in PHP onJune 28, 2008

80,250,430,134,35,60,233,90,263,225,120,59,151,677,340,221,550,300,229,97,230,123,133,87  一共24个数字 一个都不能少哦少了要出错 你可以修改函数判断一下

<?PHP     
/*    
24小时柱状图    
作者:taokey    
QQ:29611705    
*/    function h24($str){     
        $hour = explode(",",$str);     
        $hmax = max($hour);     
        $ppix = 150/$hmax;     
        //计算柱状图高度     
        $h0 = 190-$hour[0]*$ppix;     
        $h1 = 190-$hour[1]*$ppix;     
        $h2 = 190-$hour[2]*$ppix;     
        $h3 = 190-$hour[3]*$ppix;     
        $h4 = 190-$hour[4]*$ppix;     
        $h5 = 190-$hour[5]*$ppix;     
        $h6 = 190-$hour[6]*$ppix;     
        $h7 = 190-$hour[7]*$ppix;     
        $h8 = 190-$hour[8]*$ppix;     
        $h9 = 190-$hour[9]*$ppix;     
        $h10 = 190-$hour[10]*$ppix;     
        $h11 = 190-$hour[11]*$ppix;     
        $h12 = 190-$hour[12]*$ppix;     
        $h13 = 190-$hour[13]*$ppix;     
        $h14 = 190-$hour[14]*$ppix;     
        $h15 = 190-$hour[15]*$ppix;     
        $h16 = 190-$hour[16]*$ppix;     
        $h17 = 190-$hour[17]*$ppix;     
        $h18 = 190-$hour[18]*$ppix;     
        $h19 = 190-$hour[19]*$ppix;     
        $h20 = 190-$hour[20]*$ppix;     
        $h21 = 190-$hour[21]*$ppix;     
        $h22 = 190-$hour[22]*$ppix;     
        $h23 = 190-$hour[23]*$ppix;     
        //创建一个img     
        $img = imagecreate(755,210);     
        //背景     
        $bgc = imagecolorallocate ($img, 245, 250, 254);     
        //黑色     
        $bc = imagecolorallocate($img,0,0,0);     
        //画竖轴     
        imageline($img,15,30,15,189, $bc);     
        //画横轴     
        imageline($img,15,190,750,190, $bc);     
        //画竖轴点     
        for($i=39,$j=10;$i<189;$i=$i+15,$j--){     
                imageline($img,13,$i,15,$i, $bc);     
                imagestring($img,1,1,$i-4,$j."x", $bc);     
        }     
        //画横轴点     
        $t = true;     
        for($i=31,$j=29;$i<750;$i=$j+1,$j=$j+15){     
                if($t){     
                        $x=$i;     
                        $t=false;     
                }else{     
                        $x=$i+1;     
                        $t=true;     
                }     
                imageline($img,$x,190,$x,192, $bc);     
        }     
        //竖轴标记     
        $x = ceil($hmax/10);     
        imagestring($img,2,10,15,"X=".$x,$bc);     
        //竖轴标记     
        //0点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,31,$h0,45,189,$color);     
        imagestring($img,1,31,$h0-10,$hour[0],$color);     
        imagechar($img,1,36,195,0,$bc);     
        //1点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,61,$h1,75,189,$color);     
        imagestring($img,1,61,$h1-10,$hour[1],$color);     
        imagechar($img,1,66,195,1,$bc);     
        //2点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,91,$h2,105,189,$color);     
        imagestring($img,1,91,$h2-10,$hour[2],$color);     
        imagechar($img,1,96,195,2,$bc);     
        //3点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,121,$h3,135,189,$color);     
        imagestring($img,1,121,$h3-10,$hour[3],$color);     
        imagechar($img,1,126,195,3,$bc);     
        //4点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,151,$h4,165,189,$color);     
        imagestring($img,1,151,$h4-10,$hour[4],$color);     
        imagechar($img,1,156,195,4,$bc);     
        //5点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,181,$h5,195,189,$color);     
        imagestring($img,1,181,$h5-10,$hour[5],$color);     
        imagechar($img,1,186,195,5,$bc);     
        //6点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,211,$h6,225,189,$color);     
        imagestring($img,1,211,$h6-10,$hour[6],$color);     
        imagechar($img,1,216,195,6,$bc);     
        //7点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,241,$h7,255,189,$color);     
        imagestring($img,1,241,$h7-10,$hour[7],$color);     
        imagechar($img,1,246,195,7,$bc);     
        //8点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,271,$h8,285,189,$color);     
        imagestring($img,1,271,$h8-10,$hour[8],$color);     
        imagechar($img,1,276,195,8,$bc);     
        //9点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,301,$h9,315,189,$color);     
        imagestring($img,1,301,$h9-10,$hour[9],$color);     
        imagechar($img,1,306,195,9,$bc);     
        //10点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,331,$h10,345,189,$color);     
        imagestring($img,1,331,$h10-10,$hour[10],$color);     
        imagestring($img,1,334,195,10,$bc);     
        //11点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,361,$h11,375,189,$color);     
        imagestring($img,1,361,$h11-10,$hour[11],$color);     
        imagestring($img,1,364,195,11,$bc);     
        //12点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,391,$h12,405,189,$color);     
        imagestring($img,1,391,$h12-10,$hour[12],$color);     
        imagestring($img,1,394,195,12,$bc);     
        //13点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,421,$h13,435,189,$color);     
        imagestring($img,1,421,$h13-10,$hour[13],$color);     
        imagestring($img,1,424,195,13,$bc);     
        //14点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,451,$h14,465,189,$color);     
        imagestring($img,1,451,$h14-10,$hour[14],$color);     
        imagestring($img,1,454,195,14,$bc);     
        //15点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,481,$h15,495,189,$color);     
        imagestring($img,1,481,$h15-10,$hour[15],$color);     
        imagestring($img,1,481,195,15,$bc);     
        //16点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,511,$h16,525,189,$color);     
        imagestring($img,1,511,$h16-10,$hour[16],$color);     
        imagestring($img,1,511,195,16,$bc);     
        //17点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,541,$h17,555,189,$color);     
        imagestring($img,1,541,$h17-10,$hour[17],$color);     
        imagestring($img,1,544,195,17,$bc);     
        //18点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,571,$h18,585,189,$color);     
        imagestring($img,1,571,$h18-10,$hour[18],$color);     
        imagestring($img,1,571,195,18,$bc);     
        //19点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,601,$h19,615,189,$color);     
        imagestring($img,1,601,$h19-10,$hour[19],$color);     
        imagestring($img,1,604,195,19,$bc);     
        //20点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,631,$h20,645,189,$color);     
        imagestring($img,1,631,$h20-10,$hour[20],$color);     
        imagestring($img,1,634,195,20,$bc);     
        //21点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,661,$h21,675,189,$color);     
        imagestring($img,1,661,$h21-10,$hour[21],$color);     
        imagestring($img,1,664,195,21,$bc);     
        //22点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,691,$h22,705,189,$color);     
        imagestring($img,1,691,$h22-10,$hour[22],$color);     
        imagestring($img,1,694,195,22,$bc);     
        //23点     
        $color = imagecolorallocate($img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));     
        imagefilledrectangle($img,721,$h23,735,189,$color);     
        imagestring($img,1,721,$h23-10,$hour[23],$color);     
        imagestring($img,1,724,195,23,$bc);     
        //加个边框 加了之后不好看     
        //imagerectangle($img, 0, 0, 754, 209, $bc);     
        imagepng($img);     
        imagedestroy($img);             
}     
$str = isset($_GET['str'])?$_GET['str']:"";     
if($str){     
        h24($str);     
}     
?>

PHP 相关文章推荐
来自phpguru得Php Cache类源码
Apr 15 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
php实现点击可刷新验证码
Nov 07 PHP
php语言的7种基本的排序方法
Dec 28 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 PHP
php 在线打包_支持子目录
Jun 28 #PHP
php 前一天或后一天的日期
Jun 28 #PHP
js下函数般调用正则的方法附代码
Jun 22 #PHP
php的正则处理函数总结分析
Jun 20 #PHP
PHP伪静态页面函数附使用方法
Jun 20 #PHP
PHP伪静态写法附代码
Jun 20 #PHP
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 #PHP
You might like
短波的认识
2021/03/01 无线电
实用函数8
2007/11/08 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php生出随机字符串
2017/07/06 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python 实现目录复制的三种小结
2019/12/04 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
如何理解委托
2012/01/06 面试题
如何保障Web服务器安全
2014/05/05 面试题
2014年向国旗敬礼活动总结
2014/09/27 职场文书