php 元饼图 直方图,给你一个画饼图的,画直方图直接用img控制其宽高就可实现吧

编程入门 行业动态 更新时间:2024-10-20 07:57:24

php 元饼图 <a href=https://www.elefans.com/category/jswz/34/1763343.html style=直方图,给你一个画饼图的,画直方图直接用img控制其宽高就可实现吧"/>

php 元饼图 直方图,给你一个画饼图的,画直方图直接用img控制其宽高就可实现吧

//调用方法:

//chart.php为本文文件名

/*

把角度转换为弧度

*/

function radians ($degrees)

{

return($degrees * (pi()/180.0));

}

/*

** 取得在圆心为(0,0)圆上 x,y点的值

*/

function circle_point($degrees, $diameter)

{

$x = cos(radians($degrees)) * ($diameter/2);

$y = sin(radians($degrees)) * ($diameter/2);

return (array($x, $y));

}

// 填充图表的参数

$chartdiameter = 200; //图表直径

$chartfont = 2; //图表字体

$chartfontheight = imagefontheight($chartfont);//图表字体的大小

require(mysql.php3);

$sql=new mysql_class;

$sql->create(star);

$sql->query("select * from serch where answer=富士通常昊 九段");

$record1=$sql->rows;

$sql->query("select * from serch where answer=富士通曹薰铉 九段");

$record2=$sql->rows;

$chartdata = array( $record1,$record2);//用于生成图表的数据,可通过数据库来取得来确定

//$chartlabel = array("常昊九段", "曹薰铉九段"); //数据对应的名称

//确定图形的大小

$chartwidth = $chartdiameter + 20;

$chartheight = $chartdiameter + 20 +

(($chartfontheight + 2) * count($chartdata));

//确定统计的总数

for($index = 0; $index < count($chartdata); $index++)

{

$charttotal += $chartdata[$index];

}

$chartcenterx = $chartdiameter/2 + 10;

$chartcentery = $chartdiameter/2 + 10;

//生成空白图形

$image = imagecreate($chartwidth, $chartheight);

//分配颜色

$colorbody = imagecolorallocate($image, 0xe4, 0xe6, 0xd1);

$colorborder = imagecolorallocate($image, 0x00, 0x00, 0x00);

$colortext = imagecolorallocate($image, 0x00, 0x00, 0x00);

$colorslice[] = imagecolorallocate($image, 0xff, 0x00, 0x00);

$colorslice[] = imagecolorallocate($image, 0x00, 0x00, 0xff);

//填充背境

imagefill($image, 0, 0, $colorbody);

/*

** 画每一个扇形

*/

$degrees = 0;

for($index = 0; $index < count($chartdata); $index++)

{

$startdegrees = round($degrees);

$degrees += (($chartdata[$index]/$charttotal)*360);

$enddegrees = round($degrees);

$currentcolor = $colorslice[$index%(count($colorslice))];

//画图f

imagearc($image,$chartcenterx,$chartcentery,$chartdiameter,

$chartdiameter,$startdegrees,$enddegrees, $currentcolor);

//画直线

list($arcx, $arcy) = circle_point($startdegrees, $chartdiameter);

imageline($image,$chartcenterx,$chartcentery,floor($chartcenterx + $arcx),

floor($chartcentery + $arcy),$currentcolor);

//画直线

list($arcx, $arcy) = circle_point($enddegrees, $chartdiameter);

imageline($image,$chartcenterx,$chartcentery,ceil($chartcenterx + $arcx),

ceil($chartcentery + $arcy),$currentcolor);

//填充扇形

$midpoint = round((($enddegrees – $startdegrees)/2) + $startdegrees);

list($arcx, $arcy) = circle_point($midpoint, $chartdiameter/2);

imagefilltoborder($image,floor($chartcenterx + $arcx),floor($chartcentery + $arcy),

$currentcolor,$currentcolor);

}

//画边框

imagearc($image,

$chartcenterx,

$chartcentery,

$chartdiameter,

$chartdiameter,

0,

180,

$colorborder);

imagearc($image,

$chartcenterx,

$chartcentery,

$chartdiameter,

$chartdiameter,

180,

360,

$colorborder);

imagearc($image,

$chartcenterx,

$chartcentery,

$chartdiameter+7,

$chartdiameter+7,

0,

180,

$colorborder);

imagearc($image,

$chartcenterx,

$chartcentery,

$chartdiameter+7,

$chartdiameter+7,

180,

360,

$colorborder);

imagefilltoborder($image,

floor($chartcenterx + ($chartdiameter/2) + 2),

$chartcentery,

$colorborder,

$colorborder);

//画图例

for($index = 0; $index < count($chartdata); $index++)

{

$currentcolor = $colorslice[$index%(count($colorslice))];

$liney = $chartdiameter + 20 + ($index*($chartfontheight+2));

//draw color box

imagerectangle($image,

10,

$liney,

10 + $chartfontheight,

$liney+$chartfontheight,

$colorborder);

imagefilltoborder($image,

12,

$liney + 2,

$colorborder,

$currentcolor);

//画标签

imagestring($image,

$chartfont,

20 + $chartfontheight,

$liney,

"$chartdata[$index]",

$colortext);

}

//到此脚本 已经生了一幅图像的,现在需要的是把它发到浏览器上,重要的一点是要将标头发给浏览器,让它知道是一个gif文件。不然的话你只能看到一堆奇怪的乱码

header("content-type: image/gif");

//输出生成的图片

imagegif($image);

?>

更多推荐

php 元饼图 直方图,给你一个画饼图的,画直方图直接用img控制其宽高就可实现吧

本文发布于:2024-02-26 06:32:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701616.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:直方图   给你   就可   php   元饼图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!