0

0

PHP GD库动态生成折线图的实例代码

php中文网

php中文网

发布时间:2016-07-25 08:55:28

|

1650人浏览过

|

来源于php中文网

原创

  1. /**
  2. * php gd库生成折线图、柱状图、饼状图
  3. * by bbs.it-home.org
  4. */
  5. $img_gao=170;
  6. $img_kuan=0;
  7. $jiange=30;//横坐标点与点之间的间隔,生成的图片宽度会根据传入数据的多少而自动变化
  8. $zuo=20;//左侧留空
  9. $you=20;//右侧留空
  10. $shang=20;//上留空
  11. $xia=20;//下留空
  12. $zuidashujuzhi=1;
  13. $p_x = array();//点横坐标
  14. $p_y = array();//点纵坐标
  15. $y_name=split(",",$_get["x_name"]);
  16. if ($_get["a"]=="") die("error id:0");
  17. $shuju=split(",",$_get["a"]);
  18. //得到纵轴最大值
  19. for($i=0;$i  if(!is_numeric($shuju[$i])) die("error id:1");
  20.   if($shuju[$i]>$zuidashujuzhi) $zuidashujuzhi=$shuju[$i];
  21. }
  22. //得到图像宽度
  23. $img_kuan=$zuo+$you+count($shuju)*$jiange;
  24. //然后创建图像资源
  25. $image = imagecreate($img_kuan,$img_gao);
  26. //灰色背景
  27. $white = imagecolorallocate($image, 0xee, 0xee, 0xee);
  28. //坐标轴用黑色显示
  29. $zuobiao_yanse = imagecolorallocate($image, 0x00, 0x00, 0x00);
  30. //折线用蓝色显示
  31. $xian_yanse = imagecolorallocate($image, 0x00, 0x00, 0xff);
  32. //画坐标
  33. //横轴
  34. imageline ( $image, $zuo, $img_gao-$xia, $img_kuan-$you/2, $img_gao-$xia, $zuobiao_yanse);
  35. //纵轴
  36. imageline ( $image, $zuo, $shang/2, $zuo, $img_gao-$xia, $zuobiao_yanse);
  37. //得到每个点的坐标
  38. for($i=0;$i  array_push ($p_x, $zuo+$i*$jiange);
  39.   array_push ($p_y, $shang+round(($img_gao-$shang-$xia)*(1-$shuju[$i]/$zuidashujuzhi)));
  40. }
  41. //纵轴刻度
  42. imageline ( $image, $zuo, $shang, $zuo+6, $shang, $zuobiao_yanse);
  43. imagestring ( $image, 1, $zuo/4, $shang,$zuidashujuzhi, $zuobiao_yanse);
  44. imageline ( $image, $zuo, $shang+($img_gao-$shang-$xia)*1/4, $zuo+6, $shang+($img_gao-$shang-$xia)*1/4, $zuobiao_yanse);
  45. imagestring ( $image, 1, $zuo/4, $shang+($img_gao-$shang-$xia)*1/4,$zuidashujuzhi*3/4, $zuobiao_yanse);
  46. imageline ( $image, $zuo, $shang+($img_gao-$shang-$xia)*2/4, $zuo+6, $shang+($img_gao-$shang-$xia)*2/4, $zuobiao_yanse);
  47. imagestring ( $image, 1, $zuo/4, $shang+($img_gao-$shang-$xia)*2/4,$zuidashujuzhi*2/4, $zuobiao_yanse);
  48. imageline ( $image, $zuo, $shang+($img_gao-$shang-$xia)*3/4, $zuo+6, $shang+($img_gao-$shang-$xia)*3/4, $zuobiao_yanse);
  49. imagestring ( $image, 1, $zuo/4, $shang+($img_gao-$shang-$xia)*3/4,$zuidashujuzhi*1/4, $zuobiao_yanse);
  50. //横轴刻度
  51. for($i=0;$i  imageline ( $image, $zuo+$i*$jiange, $img_gao-$xia, $zuo+$i*$jiange, $img_gao-$xia-6, $zuobiao_yanse);
  52.   imagestring ( $image, 1, $zuo+$i*$jiange-$jiange/4, $shang+($img_gao-$shang-$xia)+2,$y_name[$i], $zuobiao_yanse);
  53. }
  54. //折线

  55. $shuju_yanse_int=0;
  56. for($i=0;$i  if($i+1count($shuju)){
  57.     imageline ( $image, $p_x[$i], $p_y[$i], $p_x[$i+1], $p_y[$i+1], $xian_yanse);
  58.     imagefilledrectangle($image, $p_x[$i]-1, $p_y[$i]-1, $p_x[$i]+1, $p_y[$i]+1, $xian_yanse);
  59.   }
  60. }
  61. //上一个循环没有画出最后一个点效果,这里还要追加
  62. imagefilledrectangle($image, $p_x[count($shuju)-1]-1, $p_y[count($shuju)-1]-1, $p_x[count($shuju)-1]+1, $p_y[count($shuju)-1]+1, $xian_yanse);
  63. //标注数据值

    Avactis购物车
    Avactis购物车

    Avactis是一个强大的PHP在线购物系统拥有多个版本包括开源版本。它具备一个在线购物系统所需要的所有功能从产品到会员管理,订单和营销。可以无限分类和为产品指定任务数量的图片(支持自动生成缩略图)。使用自定义字段功能,让你可以更好地定义一个产品。该系统提供以非常灵活的方式来创建任意类型的促销活动如设置折扣代码,基于价格的折扣或基于数量的折扣等。

    下载
  64. for($i=0;$i  imagestring ( $image, 3, $p_x[$i]+4, $p_y[$i]-12,$shuju[$i], $zuobiao_yanse);
  65. }
  66. //设定文件头
  67. header('Content-type: image/png');
  68. //输出图像
  69. imagepng($image);
  70. //释放资源
  71. imagedestroy($image);
  72. ?>
复制代码

二,使用方法 在需要显示图像的位置插入以下代码:

  1. PHP GD库动态生成折线图的实例代码
复制代码

说明: 其中a的值由自己计算得出; a的文本格式是由“,”连接的若干个数据的字符串,get方式传入。 由于往图形里写入中文需要更多PHP环境配置,这里给出一个html解决方案: 只需要根据数据个数的不同,动态生成一个表格放置横轴坐标刻度名称即可。

例子:

  1. for($i=0;$i  echo "
  2. ";
  3. }
  4. ?>
  5. ".$i."月
复制代码


相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

11

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

106

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

64

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

93

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

480

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

52

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号