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 相关文章推荐
最令PHP初学者头痛的十四个问题
Jul 12 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
php时间计算相关问题小结
May 09 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 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
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
js中replace的用法总结
2013/12/27 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
python实现简单多人聊天室
2018/12/11 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
群众路线对照检查材料
2014/09/22 职场文书
详解MySQL的半同步
2021/04/22 MySQL
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python