-
-
- /**
- * PHP GD 라이브러리는 꺾은선형 차트, 막대형 차트, 원형 차트를 생성합니다
- * by bbs.it-home.org
- */
- $img_gao=170;
- $img_kuan= 0;
- $jiange=30;//가로좌표 점 사이의 간격, 생성된 이미지의 너비는 들어오는 데이터의 양에 따라 자동으로 변경됩니다.
- $zuo=20;//왼쪽은 비워 둡니다.
- $you=20;//오른쪽 공백
- $shang=20;//상단 공백
- $xia=20;//하단 공백
- $zuidashujuzhi=1 ;
- $p_x = array();//점의 가로좌표
- $p_y = array();//점의 세로좌표
- $y_name=split(",",$ _GET["x_name"]);
- if ($_GET["a"]=="") die("error id:0");
- $shuju=split(",",$_GET[ "a"]);
- //세로축 최대값 구하기
- for($i=0;$i if(!is_numeric( $shuju[$i])) die("오류 ID:1");
- if($shuju[$i]>$zuidashujuzhi) $zuidashujuzhi=$shuju[$i];
- }
- //이미지 너비 가져오기
- $img_kuan= $zuo $you count($shuju)*$jiange;
- //그런 다음 이미지 리소스 생성
- $image = imagecreate($img_kuan,$img_gao);
- //회색 배경
- $white = imagecolorallocate($image, 0xEE, 0xEE, 0xEE);
- //좌표축은 검정색으로 표시됩니다
- $zuobiao_yanse = imagecolorallocate($image, 0x00, 0x00, 0x00);
- //폴리라인은 파란색으로 표시됩니다
- $xian_yanse = imagecolorallocate($image, 0x00, 0x00, 0xFF);
- //좌표 그리기
- //가로축
- imageline($image, $zuo, $img_gao-$xia, $ img_kuan-$you/2, $img_gao-$xia, $zuobiao_yanse);
- //세로축
- imageline( $image, $zuo , $shang/2, $zuo, $img_gao-$xia, $ zuobiao_yanse);
- //각 지점의 좌표를 가져옵니다
- for($i=0;$i array_push ($p_x, $zuo $i* $jiang);
- array_push ($p_y, $shang round(($img_gao-$shang-$xia)*(1-$shuju[$ i]/$zuidashujuzhi)));
- }
- //세로축 배율
- imageline( $image, $zuo, $shang, $zuo 6, $shang, $zuobiao_yanse);
- imagestring ( $image, 1, $zuo/4, $shang,$zuidashujuzhi , $zuobiao_yanse);
- imageline ( $image, $zuo, $shang ($img_gao-$shang-$xia)*1/4, $ zuo 6, $shang ($img_gao-$shang-$xia)* 1/4, $zuobiao_yanse);
- imagestring ( $image, 1, $zuo/4, $shang ($img_gao-$shang-$xia )*1/4,$zuidashujuzhi*3/4, $zuobiao_yanse) ;
- imageline ( $image, $zuo, $shang ($img_gao-$shang-$xia)*2/4, $zuo 6, $ shang ($img_gao-$shang-$xia)*2/4, $zuobiao_yanse);
- imagestring ( $image, 1, $zuo/4, $shang ($img_gao-$shang-$xia)*2/ 4,$zuidashujuzhi*2/4, $zuobiao_yanse);
- imageline ($image, $zuo, $shang ($img_gao-$shang-$xia)*3/4, $zuo 6, $shang ($img_gao -$shang-$xia)*3/4, $zuobiao_yanse)
- imagestring( $image, 1, $zuo/4, $shang ($img_gao-$shang-$xia)*3/4,$zuidashujuzhi *1/4, $zuobiao_yanse);
- //가로축 배율
- for($i=0;$i imageline ( $image, $zuo $i*$jiange, $img_gao-$xia, $zuo $i *$jiange, $img_gao-$xia-6, $zuobiao_yanse);
- imagestring ( $image, 1, $zuo $i*$jiange- $jiange/4, $shang ($img_gao-$shang-$xia ) 2,$y_name[$i], $zuobiao_yanse);
- }
//Polyline
- $shuju_yanse_int=0;
- for($i=0 ;$i if($i 1>count($shuju)){
- imageline ( $image, $p_x[$i], $p_y[ $i], $p_x[$i 1], $p_y[$i 1], $xian_yanse);
- imagefilled직사각형($image, $p_x [$i]-1, $p_y[$i]-1, $p_x[$i] 1, $p_y[$i] 1, $xian_yanse);
- }
- }
- //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);
//데이터 값 표시
- for($i=0;$i imagestring ( $image, 3, $p_x[$i] 4, $p_y[$i]-12,$ shuju[$i], $zuobiao_yanse);
- }
- / /파일 헤더 설정
- header('Content-type: image/png');
- //출력 이미지
- imagepng( $image);
- //리소스 해제
- imagedestroy($ image);
- ?>
-
-
코드 복사
2.사용방법
이미지를 표시해야 하는 곳에 다음 코드를 삽입합니다.
코드 복사 지침:
a의 값은 스스로 계산합니다.
a의 텍스트 형식은 ","로 연결된 여러 데이터의 문자열이며 get 메소드를 통해 전달됩니다.
중국어를 그래픽으로 작성하려면 더 많은 PHP 환경 구성이 필요하므로 다음은 HTML 솔루션입니다.
데이터 개수에 따라 가로축 좌표계 눈금 이름을 배치하려면 동적으로 테이블을 생성하기만 하면 됩니다.
예:
-
- for($i=0;$i<12;$i ) {
- echo "
".$i ."month | ";
- }
- ?>
코드 복사
|