> 백엔드 개발 > PHP 튜토리얼 > PHP GD 라이브러리를 사용하여 동적으로 선형 차트를 생성하는 예제 코드

PHP GD 라이브러리를 사용하여 동적으로 선형 차트를 생성하는 예제 코드

WBOY
풀어 주다: 2016-07-25 08:55:28
원래의
1539명이 탐색했습니다.
  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("오류 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* $jiang);
  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. //Polyline

  55. $shuju_yanse_int=0;
  56. for($i=0 ;$i if($i 1>count($shuju)){
  57. imageline ( $image, $p_x[$i], $p_y[ $i], $p_x[$i 1], $p_y[$i 1], $xian_yanse);
  58.   imagefilled직사각형($image, $p_x [$i]-1, $p_y[$i]-1, $p_x[$i] 1, $p_y[$i] 1, $xian_yanse);
  59.  }
  60. }
  61. //The 마지막 루프는 마지막 점 효과를 그리지 않았으므로 imagefilled직사각형($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);

  62. //데이터 값 표시

  63. for($i=0;$i imagestring ( $image, 3, $p_x[$i] 4, $p_y[$i]-12,$ shuju[$i], $zuobiao_yanse);
  64. }
  65. / /파일 헤더 설정
  66. header('Content-type: image/png');
  67. //출력 이미지
  68. imagepng( $image);
  69. //리소스 해제
  70. imagedestroy($ image);
  71. ?>

코드 복사
2.사용방법 이미지를 표시해야 하는 곳에 다음 코드를 삽입합니다.

코드 복사

지침: a의 값은 스스로 계산합니다. a의 텍스트 형식은 ","로 연결된 여러 데이터의 문자열이며 get 메소드를 통해 전달됩니다. 중국어를 그래픽으로 작성하려면 더 많은 PHP 환경 구성이 필요하므로 다음은 HTML 솔루션입니다. 데이터 개수에 따라 가로축 좌표계 눈금 이름을 배치하려면 동적으로 테이블을 생성하기만 하면 됩니다.

예:

  1. for($i=0;$i<12;$i ) {
  2.  echo "
  3. ";
  4. }
  5. ?>
  6. ".$i ."month
코드 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿