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 has encountered an Access Violation
Jan 15 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
隐性调用php程序的方法
Mar 09 PHP
php 购物车实例(申精)
May 11 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
Vue.use源码分析
2017/04/22 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
python五子棋游戏的设计与实现
2019/06/18 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
Python descriptor(描述符)的实现
2020/11/15 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
临床医学专业学生的自我评价分享
2013/11/21 职场文书
法学院方阵解说词
2014/01/29 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
公司业务员岗位职责
2014/03/18 职场文书
会计专业求职信
2014/08/10 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
JavaScript实现简单拖拽效果
2021/09/15 Javascript
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL