如何用php作线形图的函数
作者:周扒pi | 2021-08-14 06:06
很高兴大家对PHP如此的情有独钟!下面就给大家介绍php作线形图的函数:/*函数说明$data:y轴数据(数组)$graphdata:y轴数据--百分比(数组)$label:x轴数据(数组)$height:图像高度$width:图像宽度$font:字号$dot:决定点的大小$bg:背景色$line:线色$text
很高兴大家对PHP如此的情有独钟!
下面就给大家介绍php作线形图的函数:
/*
函数说明
$data:y轴数据(数组)
$graphdata:y轴数据--百分比(数组)
$label:x轴数据(数组)
$height:图像高度
$width:图像宽度
$font:字号
$dot:决定点的大小
$bg:背景色
$line :线色
$text :文本色
$dotcolor:点色
$file:输出图像文件名
*/
function qximage($data ,
$graphdata,
$label ,
$height,
$width ,
$font,
$dot,
$bg,
$line,
$text,
$dotcolor,
$file)
{
$jc=$height/100;
$fontwidth= imagefontwidth ($font);
$fontheight=imagefontheight($font);
$image= imagecreate ($width,$height 20);
$bg= imagecolorallocate($image ,$bg[0],$bg[1],$bg[2]);
$line=imagecolorallocate($image ,$line[0],$line[1],$line[2]);
$text=imagecolorallocate($image ,$text[0],$text[1],$text[2]);
$dotcolor=imagecolorallocate($image ,$dotcolor[0],$dotcolor[1],$$dotcolor[2]);
imageline ($image,0,0,0,$height,$line);
imageline($image,0,$height,$width,$height,$line);
for ($i=1;$i<11;$i )
{
imagedashedline($image,0,$height - $jc*$i*10 ,$width ,$height -$jc*$i*10 ,$line );
imagestring ($image,$font,0,$height-$jc*$i*10,$i*10,$text);
}
for ($i=0;$i {
#echo $tmp."
";
$x1=(($width-50)/count($data))*($i) 40;
#echo $x1 ."
";
$y1=$height-$graphdata[$i]*$jc;
$x2=$x1;
$y2=$y1 $graphdata[$i]*$jc;
#echo $y1."
";
imagestring($image,$font,$x1,$y1-2*$fontheight,$graphdata[$i]."%(".$data[$i].")",$text);
imagearc ($image,$x1 ,$y1,$dot,$dot,0,360,$dotcolor);
imagefilltoborder ($image,$x1,$y1,$dotcolor,$dotcolor);
imagestring ($image,$font,$x1,$y2,$label[$i],$text);
if ($i>0)
{
imageline($image,$tmpx1,$tmpy1,$x1,$y1,$line);
}
$tmpx1=$x1;$tmpy1=$y1;
}
imagegif ($image,$file);
}
?>
【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】
推荐阅读
-
如何解决《在swift中调用超级指定初始化程序之前初始化属性值的目的是什么?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《我应该使用哪种助推器来存储人类年龄》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Angular.JSonclick函数仅在第一次单击时调用》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《html5-如何折叠和扩展复杂的表元素》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《如何忽略以不同高度创建的边距内联块?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《使每一秒div都有不同的背景颜色》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《AndroidStudio2.0(预览3b)布局xml更改未在apk中更新?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《每个钩子错误之前的角度业力幻像》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《是什么导致我的循环只在第一次迭代中忽略这个"\t"?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《通过蓝牙或USB与打印机设备通信并进行控制》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《如何在psycopg2中返回列表而不是元组》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《字符串数到整数不工作的PHP》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用问题与rails中的模块有什么区别?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《(转到)如何使用toml文件?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《关于SwaggerAPI的建议》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《单元测试SpringCloudService的策略》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《密码管理:html中的硬编码密码》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Eclipse中从MongoDB禁用控制台日志记录》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《特定角色的strsplit,证明该角色不应该被特定角色所遵循》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Bootstrap模态动态宽度》经验,为你挑选了2个好方法。 ...
[详细]