<?php
if(empty($dataFile))
{echo"无数据文件!";}
else
{
$point=6;
$data_x=array();
$data_y=array();
$x=array();
$file=$dataFile;
$file_hander=fopen($file,"rb");
while(!feof($file_hander))
{
$buffer=fgets($file_hander);
array_push($x,$buffer);
}
for($i=0;$i<sizeof($x)-1;$i++)
{
$data=explode(" ",$x[$i]);
array_push($data_x,$data[0]);
array_push($data_y,substr($data[1],0,-2));
}
/*for($i=0;$i<sizof($data_x);$i++)
{
echo"[".$data_x[$i].",".$data_y[$i]."]<br>";
}*/
if(sizeof($data_x)==sizeof($data_y))//横纵坐标的个数相同
{
header("Content-type:image/png");
$imgWidth=600;$imgHeight=600;$cha=50;
$image=imagecreate($imgWidth+80,$imgHeight+80);
$colorWhite=imagecolorallocate($image,255,255,255);
$raxi=imagecolorallocate($image,255,0,0);//#ABA9A5
$raxi_o=imagecolorallocate($image,0,255,0);
$net=imagecolorallocate($image,153,204,255);//#99CCFF
$zuobiao=imagecolorallocate($image,255,153,0);//#FF9900
//分别求一下横纵坐标的最大最小值
$max_x=$min_x=$data_x[0];
$min_y=$max_y=$data_y[0];
for($i=1;$i<sizeof($data_x);$i++)
{
$max_x=$max_x>$data_x[$i]?$max_x:$data_x[$i];
$min_x=$min_x<$data_x[$i]?$min_x:$data_x[$i];
$max_y=$max_y>$data_y[$i]?$max_y:$data_y[$i];
$min_y=$min_y<$data_y[$i]?$min_y:$data_y[$i];
}
$num=20;
$bit_x=($max_x-$min_x)/$imgWidth;//X轴实际与显示的比例
$step_x=30*$bit_x;
$bit_y=($max_y-$min_y)/$imgHeight;//Y轴实际与显示的比例
$step_y=30*$bit_y;
/*for($i=0;$i<sizeof($data_x);$i++)
echo $data_x[$i]." ";*/
for($i=0;$i<=$num;$i++)//坐标轴
{
imageline($image,($i*30),($imgHeight),(30*($i+1)),($imgHeight),$raxi);//注意,只要画出20个方格即可,不需考虑数据
if($i%2==0)
imagestring($image,2,($i*30),$imgHeight+5,($min_x+$i*$step_x),$raxi_o);//X轴数据
else
imagestring($image,2,($i*30),$imgHeight+5,($min_x+$i*$step_x),$raxi);
imageline($image,0,$imgHeight-30*$i,0,$imgHeight-30*($i+1),$raxi);
if($i%2==0)
imagestring($image,2,10,$imgHeight-30*$i,($min_y+$i*$step_y),$raxi);
else
imagestring($image,2,10,$imgHeight-30*$i,($min_y+$i*$step_y),$raxi_o);
}
for($i=1;$i<=20;$i++)//垂线
{
imageline($image,30*$i,$imgHeight,30*$i,0,$net);
imageline($image,0,$imgHeight-30*$i,$imgWidth,$imgHeight-30*$i,$net);
}
for($i=0;$i<sizeof($data_x)-1;$i++)//画点与点之间的连线
{
imageline($image,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),($data_x[$i+1]-$min_x)/$bit_x,($imgHeight-($data_y[$i+1]-$min_y)/$bit_y),$raxi);
}
for($i=0;$i<sizeof($data_x);$i++)
{
$show_thing="[".$data_x[$i].",".$data_y[$i]."]";
for($j=0;$j<$point;$j++)//画坐标点
imagearc($image,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),$j,$j,0,360,$raxi);
imagestring($image,2,($data_x[$i]-$min_x)/$bit_x,($imgHeight-($data_y[$i]-$min_y)/$bit_y),$show_thing,$zuobiao);
}
imagepng($image);
imagedestroy($image);
}
else echo"横纵坐标的个数不同!请检查一下原文件!";
}
?>
- Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.12 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- 无数据文件!
preferences:
247.06 ms | 404 KiB | 304 Q