0) { imagefilledpolygon($im, Array( $x, $y-$h, $x+$w, $y-$h, $x+$w+$dx, $y-$h-$dy, $x+$dx, $y-$dy-$h ), 4, $c1); imagefilledpolygon($im, Array( $x+$w, $y-$h, $x+$w, $y, $x+$w+$dx, $y-$dy, $x+$w+$dx, $y-$dy-$h ), 4, $c3); } imagefilledrectangle($im, $x, $y-$h, $x+$w, $y, $c2); } function load_data($file){ $DATA=Array(); $h = fopen($file,'r'); while (!feof($h)) { $c = fgets($h,300); // print preg_replace("/.*$/","",$c)."\n"; $n= preg_split("/\s+/",$c); $DATA[0][] = $n[1]; $DATA["x"][] = $n[0]; } fclose($h); return $DATA; } $file = "data/out.txt"; if(isset($_GET['ts'])) $file= "data/out_".$_GET['ts']."Apr.txt"; $DATA = load_data($file); $W=800; $H=500; $DX=30; $DY=20; $MB=20; $ML=10; $M=5; $LW=imagefontwidth(2); $count=count($DATA[0]); $max=0; for ($i=0;$i<$count;$i++) { $max=$max<$DATA[0][$i]?$DATA[0][$i]:$max; } $max=intval($max+($max/10)); $im=imagecreate($W,$H); $bg[0]=imagecolorallocate($im,255,255,255); $bg[1]=imagecolorallocate($im,231,231,231); $bg[2]=imagecolorallocate($im,212,212,212); $c=imagecolorallocate($im,184,184,184); $text=imagecolorallocate($im,136,136,136); $bar[2][0]=imagecolorallocate($im,255,128,234); $bar[2][1]=imagecolorallocate($im,222,95,201); $bar[2][2]=imagecolorallocate($im,191,65,170); $bar[0][0]=imagecolorallocate($im,222,214,0); $bar[0][1]=imagecolorallocate($im,181,187,65); $bar[0][2]=imagecolorallocate($im,161,155,0); $bar[1][0]=imagecolorallocate($im,128,234,255); $bar[1][1]=imagecolorallocate($im,95,201,222); $bar[1][2]=imagecolorallocate($im,65,170,191); $county=10; $text_width=strlen($max)*$LW; $ML+=$text_width; imageline($im, $ML, $M+$DY, $ML, $H-$MB, $c); imageline($im, $ML, $M+$DY, $ML+$DX, $M, $c); imageline($im, $ML, $H-$MB, $ML+$DX, $H-$MB-$DY, $c); imageline($im, $ML, $H-$MB, $W-$M-$DX, $H-$MB, $c); imageline($im, $W-$M-$DX, $H-$MB, $W-$M, $H-$MB-$DY, $c); imagefilledrectangle($im, $ML+$DX, $M, $W-$M, $H-$MB-$DY, $bg[1]); imagerectangle($im, $ML+$DX, $M, $W-$M, $H-$MB-$DY, $c); imagefill($im, $ML+1, $H/2, $bg[2]); for ($i=1;$i<3;$i++) { imageline($im, $ML+$i*intval($DX/3), $M+$DY-$i*intval($DY/3), $ML+$i*intval($DX/3), $H-$MB-$i*intval($DY/3), $c); imageline($im, $ML+$i*intval($DX/3), $H-$MB-$i*intval($DY/3), $W-$M-$DX+$i*intval($DX/3), $H-$MB-$i*intval($DY/3), $c); } $RW=$W-$ML-$M-$DX; $RH=$H-$MB-$M-$DY; $X0=$ML+$DX; $Y0=$H-$MB-$DY; for ($i=0;$i<$count;$i++) { imageline($im,$X0+$i*($RW/$count),$Y0,$X0+$i*($RW/$count)-$DX,$Y0+$DY,$c); imageline($im,$X0+$i*($RW/$count),$Y0,$X0+$i*($RW/$count),$Y0-$RH,$c); } $step=$RH/$county; for ($i=0;$i<=$county;$i++) { imageline($im,$X0,$Y0-$step*$i,$X0+$RW,$Y0-$step*$i,$c); imageline($im,$X0,$Y0-$step*$i,$X0-$DX,$Y0-$step*$i+$DY,$c); imageline($im,$X0-$DX,$Y0-$step*$i+$DY, $X0-$DX-($ML-$text_width)/4,$Y0-$step*$i+$DY,$text); } for ($i=0;$i<$count;$i++) imagebar($im, $X0+$i*($RW/$count)+4-1*intval($DX/3), $Y0+1*intval($DY/3), intval($RW/$count)-4, $RH/$max*$DATA[0][$i], intval($DX/3)-5, intval($DY/3)-3, $bar[0][0], $bar[0][1], $bar[0][2]); for ($i=1;$i<=$county;$i++) { $str=intval(($max/$county)*$i); imagestring($im,2, $X0-$DX-strlen($str)*$LW-$ML/4-2, $Y0+$DY-$step*$i-imagefontheight(2)/2, $str,$text); } $prev=100000; $twidth=$LW*strlen($DATA["x"][0])+6; $i=$X0+$RW-$DX; while ($i>$X0-$DX) { if ($prev-$twidth>$i) { $drawx=$i+1-($RW/$count)/2; if ($drawx>$X0-$DX) { $str=$DATA["x"][round(($i-$X0+$DX)/($RW/$count))-1]; imageline($im,$drawx,$Y0+$DY,$i+1-($RW/$count)/2,$Y0+$DY+5,$text); imagestring($im,2, $drawx+1-(strlen($str)*$LW)/2 ,$Y0+$DY+7,$str,$text); } $prev=$i; } $i-=$RW/$count; } header("Content-Type: image/png"); imagePNG($im); imagedestroy($im); print "Text"; ?>