php绘图之生成饼状图的方法

这篇文章主要介绍了php绘图之生成饼状图的方法,涉及GD库中imagefilledarc方法的使用技巧,需要的朋友可以参考下

本文实例讲述了php绘图之生成饼状图的方法,分享给大家供大家参考,具体如下:

这里要实现的功能是人口分布比例图,由扇形组成一个圆,每个扇形颜色不一样,代码如下:

  1. <?php
  2. $array = array("北京"=>1925,"上海"=>2016,"广州"=>1256,"深圳"=>980);
  3. $arr_key = array_keys($array);
  4. $color = array();
  5. $im = imagecreatetruecolor(300,300);
  6. for($i=1;$i<=count($array);$i++){
  7. $color[] = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
  8. }
  9. //创建饼状图,由多个扇形组成
  10. $a1=rand(0,360);
  11. $sum = array_sum($array);
  12. for($j=0;$j<count($arr_key);$j++){
  13. $a2 = $a1 + $arr_key[$j]/$sum*360;
  14. imagefilledarc($im,150,150,180,80,$a1,$a2,$color[$j],IMG_ARC_PIE);
  15. $a1 = $a2;
  16. }
  17. //输出图像
  18. header("content-type: image/png");
  19. imagepng($im);
  20. //关闭
  21. imagedestroy($im);
  22. ?>