php折线图统计源代码,PHP折线图的示例代码 可以输出汉字的php折线统计图

/**

*  php折线图示例代码

*  by www.jbxue.com

*/

$data = array(1,2,33,4,5,16,7,8,9,10,11,12);

$month= array("Jan","Feb","March","April","May","June","July","Aug","Sep","Oct","Nov","Dec");

$rdata = array(0.1,0.2,6,0.4,0.5,0.6,0.7,2,0.9,1,1.1,1.2);

$max=max($data);   //获取销售额的最大值

$rmax=max($rdata);  //获取利润的最大值

$im = imagecreate(600,300); //创建画布

$green = imagecolorallocate($im,214,235,214);//设置颜色值

$black = imagecolorallocate($im,0,0,0);

$red = imagecolorallocate($im,255,0,0);

$blue = imagecolorallocate($im,0,0,255);

imageline($im,20,230,530,230, $blue ); //设置X轴横坐标

imageline($im,20,20,20,230, $blue );  //设置Y轴纵坐标

imagestring($im,3,555,222,"X",$black); //输出字符X

imagestring($im,3,16,1,"Y",$black); //输出字符Y

$l=190;

$k1=20;

$k2=500;

for($j=0;$j<12;$j++){

imageline($im,$k1,$l,$k2,$l,$black); //设置X轴网格线横坐标

$l=$l-40;

}

$f=60;

$z1=30;

$z2=230;

for($j=0;$j<12;$j++){

imageline($im,$f,$z1,$f,$z2,$black);  //设置Y轴网格线纵坐标

$f=$f+40;

}

//输出Y轴坐标值

$a=max($data);

$b=max($rdata);

$c=$a>$b?$a:$b;

$l=185;

for($j=0;$j<5;$j++){

imagestring($im,2,2,$l,floor($c/5*($j+1)),$red);

$l=$l-40;

}

$x = 20;

$y = 230;

for ($i=1;$i<12;$i++){

$y_lt = 230-(($data[$i-1]/$max)*200); //设置商品销售额所在的纵坐标值

$y_ht = 230-(($data[$i]/$max)* 200); //设置商品销售额所在的纵坐标值

imageline($im,$x*($i*2-1)+20,$y_lt,$x*(($i+1)*2-1)+20,$y_ht,$red); //绘制销售额折线图

}

for ($i=1;$i<13;$i++){

imagestring( $im,2,$x*($i-1)*2+30,$y+11,$month[$i-1],$black);   //输出月份的值

imagestring( $im,2,$x*($i-1)*2+30,$y+25,$data[$i-1],$red); //输出商品销售额的值

imagestring( $im,2,$x*($i-1)*2+30,$y+40,$rdata[$i-1],$blue);    //输出销售利润的值

}

$fontpath=$_SERVER["SystemRoot"]."\\fonts\\simhei.ttf"; //设置字库路径

$str=iconv("gb2312","UTF-8","中国人民123");

$str=str_repeat($str,2);

imagettftext($im,25,-45,80,20,$blue,$fontpath,$str);

imagettftext($im,15,30,180,190,$red,$fontpath,$str);

$x1 = 20;

$y1 = 230;

for ($r=1;$r<12;$r++){

$y_lt1 = 230-(($rdata[$r-1]/$max)* 200); //设置商品销售利润所在的纵坐标值

$y_ht1 = 230-(($rdata[$r]/$max)*200); //设置商品销售利润所在的纵坐标值

imageline($im,$x1*($r*2-1)+20,$y_lt1,$x*(($r+1)*2-1)+20,$y_ht1,$blue); //绘制销售利润折线图

}

list($usec, $sec) = explode(" ", microtime());

$ss=(string)((float)$usec + (float)$sec);

$ss2=((string)$sec).(substr((string)$usec,1,strlen((string)$usec)-1));

//echo $ss2;echo "
";

imagestring($im,8,200,10,$ss,$black);

imagestring($im,8,200,40,$ss2,$black);

$str=iconv("gb2312","UTF-8","9");

imagettftext($im,150,0,180,190,$red,$fontpath,$str);

echo(imagepng($im));

header("Content-type: image/png");

imagedestroy($im); //释放图像资源

header("Content-type: text/html");

//echo $ss2;echo "
";

?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值