PHP实现曲线统计图的一个例子

PHP实现曲线统计图的一个例子
本文介绍了PHP实现的曲线统计:
< PHP
/ ******************************
折线图生成函数
*你
* 090207-01
****************************** /
功能line_stats_pic(value_y美元美元美元,宽,高,强= 1美元美元,固定= 0){
处理函数
功能line_point_y($num美元美元,宽,高,max_num_add美元美元美元,min_num_add,y_pxdensity){
收益=美元美元高地板(($民$ min_num_add + $ y_pxdensity)/(((max_num_add美元美元美元min_num_add)/高));
返回美元;
}
处理参数
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; / /最小轴
极限= max_num_add美元美元美元min_num_add; / / Y轴的范围
y_pxdensity =(max_num_add美元美元美元美元min_num_add) / / /高;Y轴密度
x_pxdensity美元=地板(宽度/美元美元allnum); / / X轴密度
复位($ value_y); / /数组指针为零
$ I = 0;
foreach($ value_y达Val){
point_y美元{ $我} = line_point_y(美元价值,美元美元美元的宽,高,max_num_add,min_num_add美元,美元y_pxdensity);
美元+;
}
zero_y = line_point_y美元(0美元美元,宽,高,max_num_add美元美元美元,min_num_add,y_pxdensity); / / Y值为零
empty_size_x美元=(strlen($ max_num)> strlen($ min_num strlen()max_num美元):strlen($ min_num)* 5 + 3); / /左边空白
/图片开始流
页眉(内容类型:图像);
PIC =画面欣赏美元($宽度+ empty_size_x + 10美元美元,高+ 13);
imagecolorallocate($ PIC,255255255); / /背景
color_1美元= imagecolorallocate($ PIC,30144255); / /彩色线
color_2 = imagecolorallocate美元($ PIC,0,0,0); / /黑色
color_3美元= imagecolorallocate($ PIC,194194194); / /灰色
绘制网格
imagesetthickness($ PIC,1); / /网格宽度
y_line_width美元=地板(宽/ 100美元); / /垂直网格线的数目
y_line_density美元y_line_width = = 0 = $ 0:地板(宽度/美元美元y_line_width); / /垂直网格线密度
point_zero_y美元美元美元美元= zero_y >高高:zero_y美元;
imagestring($ PIC,1,empty_size_x-1美元,高4, 0美元美元,color_2); / /零线标记
为($我= 1;美元美元美元我<< y_line_width;i++){ / /画垂直网格线
imagesetthickness($ PIC,1); / /网格宽度
imageline(美元美元美元的照片,y_line_density *我+ empty_size_x美元,0美元美元,y_line_density *我+ empty_size_x美元美元美元,高,color_3);
imagesetthickness($ PIC,2); / /轴点的宽度
imageline($ PIC,y_line_density美元美元美元美元我+ empty_size_x,point_zero_y-4美元美元,y_line_density *我+ empty_size_x美元美元美元,point_zero_y,color_2);
imagestring(pic 1100美元美元,*我+ empty_size_x-5美元美元,高4,allnum美元/美元美元美元y_line_width *我,color_2); / /线标记
}
x_line_width美元=地板($高 / 30); / /水平网格线数
x_line_density美元x_line_width = = 0 = $ 0(美元:楼高为y_line_width); / /水平网格线密度
如果($ zero_y > $高){ / /画水平网格线
imagestring($ PIC,1,0,高3美元,圆(min_num_add美元,美元,美元固定)color_2); / /零线标记
为($我= 1;美元美元美元我<< x_line_width;i++){
imagesetthickness($ PIC,1); / /网格宽度
imageline($ PIC,0 + empty_size_x美元美元美元,高x_line_density * $我,宽度+ empty_size_x美元美元美元美元,高x_line_density * $我,color_3美元);
imagesetthickness($ PIC,2); / /轴点的宽度
imageline($ PIC,0 + empty_size_x美元美元美元,高x_line_density * $ 3 +我,empty_size_x美元美元美元,高x_line_density * $我,color_2美元);
imagestring($ PIC,1,0,高x_line_density美元美元美元I-3、圆(约合限制/ x_line_width美元美元美元美元我+ min_num_add,固定),color_2美元); / /线标记
}
其他{ }
imagestring($ PIC,1,empty_size_x-8美元,zero_y美元,0美元,color_2); / /零线标记
为($我= 1;$我<细胞(x_line_width美元/ 2美元);i++){
imagesetthickness($ PIC,1); / /网格宽度
imageline($ PIC,0 + empty_size_x美元,zero_y美元美元美元美元x_line_density *我,宽度+ empty_size_x美元,zero_y美元美元美元美元x_line_density *我,color_3);
如果($ zero_y + x_line_density美元美元美元*我<<高){
imageline($ PIC,0 + empty_size_x美元,美元zero_y + x_line_density美元美元美元美元我,宽度+ empty_size_x美元美元,zero_y + x_line_density * $我,color_3美元);
}
imagesetthickness($ PIC,2); / /轴点的宽度
imageline($ PIC,0 + empty_size_x美元美元美元,zero_y x_line_density * $ 3 +我,empty_size_x美元,zero_y美元美元美元美元x_line_density *我,color_2);
如果($ zero_y + x_line_density美元美元美元*我<<高){
imageline($ PIC,0 + empty_size_x美元,美元zero_y + $ x_line_density * $ 3 +我,empty_size_x美元美元美元,zero_y + x_line_density * $我,color_2美元);
}
imagestring($ PIC,1,0,zero_y美元美元美元x_line_density * I-3、圆(约合限制/ x_line_width美元美元美元美元,固定),color_2); / /线标记
如果($ zero_y + x_line_density美元美元美元*我<<高){
imagestring($ PIC,1,0,zero_y美元美元美元+ x_line_density * I-3、圆(至极限/ x_line_width美元美元美元美元,固定),color_2); / /线标记
}
}
}

imagesetthickness($ PIC,2); / /宽轴
imageline($ PIC,1 + $ empty_size_x,0,1 + empty_size_x美元美元美元,高,color_2);
如果($ zero_y > $高){ / / X轴的位置
imageline($ PIC,0 + empty_size_x美元美元美元,高,宽+高empty_size_x美元,美元,美元color_2);
其他{ }
imageline($ PIC,0 + empty_size_x美元美元美元,zero_y,宽度+ empty_size_x美元美元美元,zero_y,color_2);
}
生产线
point_x = 0美元;
$ j=0;
imagesetthickness(PIC美元,美元强); / /线厚度
而(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美元;
美元+;
}
imagepng(合图);
销毁一图像(合图);
}
*
功能描述与实例
参数描述:
value_y美元:你想生成数组包含折线图,从0开始增加的关键要求。
网格宽度(不是白边的宽度--------美元)产生的折线图
高高--------美元
强-------美元线厚度(默认是1)
固定-------美元数据保留数(默认舍入)
* /
($ i = 0;$ i < 100;$ + +){
值=兰德(1200);
value_y美元{ } =价值;
}
line_stats_pic(value_y美元,500100,1,1);
>

结果如下:
更多关于PHP相关内容的读者可以看到专题站:PHP图形和图片,PHP操作技能摘要文件操作

希望本文能对PHP程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部