中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

php生成折線圖代碼

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
/******************************
*      折線圖生成函數(shù)
******************************/
function line_stats_pic ( $value_y,$width,$high,$strong=1,$fix=0 )
{
//y值處理函數(shù)
	function line_point_y ( $num,$width,$high,$max_num_add,$min_num_add,$y_pxdensity )
	{
		$return=$high-floor ( ( $num-$min_num_add+$y_pxdensity ) / ( ( $max_num_add-$min_num_add ) /$high ) );
		return $return;
	}

//參數(shù)處理
	$allnum=sizeof ( $value_y );
	$max_num=max ( $value_y );           //最大值
	$min_num=min ( $value_y );           //最小值
	$limit_m=$max_num-$min_num;            //極差
	$max_num_add=$max_num+$limit_m*0.1;        //軸最大值
	$min_num_add=$min_num-$limit_m*0.1;        //軸最小值
	$limit=$max_num_add-$min_num_add;         //極差-坐標(biāo)軸y
	$y_pxdensity= ( $max_num_add-$min_num_add ) /$high;  //y軸密度
	$x_pxdensity=floor ( $width/$allnum );     //x軸密度
	reset ( $value_y );              //將數(shù)組指針歸零
	$i=0;
	foreach ( $value_y as $val )
	{
		$point_y[$i]=line_point_y ( $val,$width,$high,$max_num_add,$min_num_add,$y_pxdensity );
		$i++;
	}
	$zero_y=line_point_y ( 0,$width,$high,$max_num_add,$min_num_add,$y_pxdensity );  //零點(diǎn)的y值
	$empty_size_x= ( strlen ( $max_num ) > strlen ( $min_num ) ? strlen ( $max_num ) : strlen ( $min_num ) ) *5+3;          //左邊空白

//圖片流開始
	header ( "Content-type:image/png" );
	$pic=imagecreate ( $width+$empty_size_x+10,$high+13 );
	imagecolorallocate ( $pic,255,255,255 );  //背景色
	$color_1=imagecolorallocate ( $pic,30,144,255 ); //線條色
	$color_2=imagecolorallocate ( $pic,0,0,0 );   //黑色
	$color_3=imagecolorallocate ( $pic,194,194,194 );//灰色
//繪制網(wǎng)格
	imagesetthickness ( $pic,1 );       //網(wǎng)格線寬
	$y_line_width=floor ( $width/100 );    //縱網(wǎng)格線數(shù)目
	$y_line_density=$y_line_width==0 ? 0 :floor ( $width/$y_line_width ); //縱網(wǎng)格線密度
	$point_zero_y=$zero_y > $high ? $high : $zero_y;
	imagestring ( $pic,1,$empty_size_x-1,$high+4,"0",$color_2 ); //零點(diǎn)數(shù)軸標(biāo)記
	for ( $i=1; $i <= $y_line_width; $i++ )  //繪制縱網(wǎng)格線
	{
		imagesetthickness ( $pic,1 );      //網(wǎng)格線寬
		imageline ( $pic,$y_line_density*$i+$empty_size_x,0,$y_line_density*$i+$empty_size_x,$high,$color_3 );
		imagesetthickness ( $pic,2 );      //軸點(diǎn)線寬
		imageline ( $pic,$y_line_density*$i+$empty_size_x,$point_zero_y-4,$y_line_density*$i+$empty_size_x,$point_zero_y,$color_2 );
		imagestring ( $pic,1,100*$i+$empty_size_x-5,$high+4,$allnum/$y_line_width*$i,$color_2 );  //數(shù)軸標(biāo)記
	}
	$x_line_width=floor ( $high/30 );     //橫網(wǎng)格線數(shù)目
	$x_line_density=$x_line_width==0 ? 0 :floor ( $high/$y_line_width );  //橫網(wǎng)格線密度
	if ( $zero_y > $high )           //繪制橫網(wǎng)格線
	{
		imagestring ( $pic,1,0,$high-3,round ( $min_num_add,$fix ),$color_2 ); //零點(diǎn)數(shù)軸標(biāo)記
		for ( $i=1; $i <= $x_line_width; $i++ )
		{
			imagesetthickness ( $pic,1 );     //網(wǎng)格線寬
			imageline ( $pic,0+$empty_size_x,$high-$x_line_density*$i,$width+$empty_size_x,$high-$x_line_density*$i,$color_3 );
			imagesetthickness ( $pic,2 );     //軸點(diǎn)線寬
			imageline ( $pic,0+$empty_size_x,$high-$x_line_density*$i,3+$empty_size_x,$high-$x_line_density*$i,$color_2 );
			imagestring ( $pic,1,0,$high-$x_line_density*$i-3,round ( $limit/$x_line_width*$i+$min_num_add,$fix ),$color_2 );  //數(shù)軸標(biāo)記
		}
	}
	else
	{
		imagestring ( $pic,1,$empty_size_x-8,$zero_y,"0",$color_2 ); //零點(diǎn)數(shù)軸標(biāo)記
		for ( $i=1; $i <= ceil ( $x_line_width/2 ); $i++ )
		{
			imagesetthickness ( $pic,1 );     //網(wǎng)格線寬
			imageline ( $pic,0+$empty_size_x,$zero_y-$x_line_density*$i,$width+$empty_size_x,$zero_y-$x_line_density*$i,$color_3 );
			if ( $zero_y+$x_line_density*$i < $high )
			{
				imageline ( $pic,0+$empty_size_x,$zero_y+$x_line_density*$i,$width+$empty_size_x,$zero_y+$x_line_density*$i,$color_3 );
			}
			imagesetthickness ( $pic,2 );     //軸點(diǎn)線寬
			imageline ( $pic,0+$empty_size_x,$zero_y-$x_line_density*$i,3+$empty_size_x,$zero_y-$x_line_density*$i,$color_2 );
			if ( $zero_y+$x_line_density*$i < $high )
			{
				imageline ( $pic,0+$empty_size_x,$zero_y+$x_line_density*$i,3+$empty_size_x,$zero_y+$x_line_density*$i,$color_2 );
			}
			imagestring ( $pic,1,0,$zero_y-$x_line_density*$i-3,round ( $limit/$x_line_width*$i,$fix ),$color_2 );   //數(shù)軸標(biāo)記
			if ( $zero_y+$x_line_density*$i < $high )
			{
				imagestring ( $pic,1,0,$zero_y+$x_line_density*$i-3,round ( -$limit/$x_line_width*$i,$fix ),$color_2 );  //數(shù)軸標(biāo)記
			}
		}
	}
//繪制軸線
	imagesetthickness ( $pic,2 );       //軸線寬
	imageline ( $pic,1+$empty_size_x,0,1+$empty_size_x,$high,$color_2 );
	if ( $zero_y > $high )           //x軸位置
	{
		imageline ( $pic,0+$empty_size_x,$high,$width+$empty_size_x,$high,$color_2 );
	}
	else
	{
		imageline ( $pic,0+$empty_size_x,$zero_y,$width+$empty_size_x,$zero_y,$color_2 );
	}
//產(chǎn)生折線
	$point_x=0;
	$j=0;
	imagesetthickness ( $pic,$strong );    //線條粗細(xì)
	while ( $j+1 < $allnum )
	{
		imageline ( $pic,$point_x+2+$empty_size_x,$point_y[$j],$point_x+$x_pxdensity+2+$empty_size_x,$point_y[$j+1],$color_1 );
		$point_x+=$x_pxdensity;
		$j++;
	}
	imagepng ( $pic );
	imagedestroy ( $pic );
}

/*
函數(shù)描述及例子
參數(shù)說明:
$value_y -------- 包含你想生成折線圖的數(shù)組,要求鍵值從0開始遞增。
$width--------生成的折線圖的網(wǎng)格寬度(不算白邊)
$high--------高度
$strong-------線條粗細(xì)(默認(rèn)為1)
$fix-------數(shù)據(jù)保留的位數(shù)(默認(rèn)為取整)
*/

for ( $i=0; $i<100; $i++ )
{
	$value = rand ( 1,200 );
	$value_y[]=$value;
}
line_stats_pic ( $value_y,500,100,1,1 );
?>

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:AutoCompleteTextView使用小結(jié)

下一篇: IOS 代碼創(chuàng)建控件,并有處理事件