這是個(gè)2D的。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了耀州免費(fèi)建站歡迎大家使用!
其中有一個(gè)自定義函數(shù),用于繪制餅圖,參數(shù)是一個(gè)鍵值對(duì)數(shù)組。
每項(xiàng)內(nèi)容是由數(shù)組定義的。你調(diào)入數(shù)據(jù)庫(kù)中的內(nèi)容后讀入數(shù)組即可。
前提是你當(dāng)然要開(kāi)啟GD擴(kuò)展,要不是沒(méi)得畫(huà)得。呵。
?php
function pie2d($a) //創(chuàng)建自定義函數(shù)
{
$im=imagecreate(420,300); //建立圖像
$back=imagecolorallocate($im,255,255,200); //背景色
$color[]=imagecolorallocate($im,0,0,255); //定義10個(gè)顏色,可以最多處理10項(xiàng)
$color[]=imagecolorallocate($im,255,0,0);
$color[]=imagecolorallocate($im,0,255,0);
$color[]=imagecolorallocate($im,100,100,255);
$color[]=imagecolorallocate($im,255,0,255);
$color[]=imagecolorallocate($im,150,0,0);
$color[]=imagecolorallocate($im,0,0,150);
$color[]=imagecolorallocate($im,0,150,0);
$color[]=imagecolorallocate($im,0,0,0);
$color[]=imagecolorallocate($im,150,150,150);
$value_a=array_values($a); //獲取參數(shù)數(shù)組所有值到新數(shù)組
$all=array_sum($value_a); //統(tǒng)計(jì)新數(shù)組的和
$i=0; //循環(huán)標(biāo)記
foreach($a as $key=$value) //遍歷數(shù)組
{
$angle[]=$value/$all*360; //獲取當(dāng)前角度
$str=$key.":".round($value/$all*100,2)."%"; //需要輸出的內(nèi)容
imagestring($im,5,10,($i*20+10),$str,$color[$i]); //畫(huà)字符串
$i++; //標(biāo)記自增
}
$s=0; //當(dāng)前角度標(biāo)記
$i=0;
foreach($angle as $temp) //遍歷所有項(xiàng)角度
{
imagefilledarc($im,285,150,240,120,$s,($s+$temp),$color[$i],4); //畫(huà)橢圓弧
//imagefillellipse();
$s=$s+$temp; //角度增加為當(dāng)前角度
$i++;
}
imagepng($im); //輸出PNG
imagedestroy($im); //銷(xiāo)毀圖像
}
$arr=array(
"perfect"=1,
"excellent"=2,
"very good"=4,
"good"=1,
"not bad"=1,
"normal"=1,
"bad"=1,
"very bad"=1,
"god save me"=1,
"hell"=1
); //定義數(shù)組,數(shù)組內(nèi)容為選項(xiàng)內(nèi)容與選項(xiàng)數(shù)量的鍵值對(duì)
$re=pie2d($arr); //調(diào)用自定義函數(shù)
?
在php中,有一些簡(jiǎn)單的圖像函數(shù)是可以直接使用的,但大多數(shù)要處理的圖像,都需要在編譯PHP時(shí)加上GD庫(kù)。
除了安裝GD庫(kù)之外,在PHP中還可能需要其他的庫(kù),武漢電腦培訓(xùn)認(rèn)為這可以根據(jù)需要支持哪些圖像格式而定。
不同的GD版本支持的圖像格式不完全一樣,最新的GD庫(kù)版本支持GIF、JPEG、PNG、WBMP、XBM等格式的圖像文件,此外還支持一些如FreeType、Type1等字體庫(kù)。
通過(guò)GD庫(kù)中的函數(shù),可以完成各種點(diǎn)、線、幾何圖形、文本及顏色的操作處理,也可以創(chuàng)建或讀取多種格式的圖像文件。
在PHP中,通過(guò)GD庫(kù)處理圖像的操作都是先在內(nèi)存中處理,操作完成以后再以文件流的方式輸出到瀏覽器或保存在服務(wù)器的磁盤(pán)中。
創(chuàng)建一個(gè)圖像應(yīng)該完成如下所示4個(gè)基本步驟。
①創(chuàng)建畫(huà)布:所有的繪圖設(shè)計(jì)都需要在一個(gè)背景圖片上完成,而畫(huà)布實(shí)際上就是在內(nèi)存中開(kāi)辟的一塊臨時(shí)區(qū)域,用于存儲(chǔ)圖像的信息。
以后的圖像操作都將基于這個(gè)背景畫(huà)布,該畫(huà)布的管理就類(lèi)似于我們?cè)诋?huà)畫(huà)時(shí)使用的畫(huà)布。
②繪制圖像:畫(huà)布創(chuàng)建完成以后,就可以通過(guò)這個(gè)畫(huà)布資源,使用各種畫(huà)像函數(shù)設(shè)置圖像的顏色、填充畫(huà)布、畫(huà)點(diǎn)、線段、各種幾何圖形,以及向圖像中添加文本等。
③輸出圖像:完成整個(gè)圖像的繪制以后,需要將圖像以某種格式保存到服務(wù)器指定的文件中,或?qū)D像直接輸出到瀏覽器上顯示給客戶。
但在圖像輸出之前,一定要使用header()函數(shù)發(fā)送Content-type通知瀏覽器,這次發(fā)送的是圖片不是文本。
④釋放資源:圖像被輸出以后,畫(huà)布中的內(nèi)容也不再有用。
出于節(jié)約系統(tǒng)資源的考慮,需要及時(shí)清楚畫(huà)布占用的所有內(nèi)存資源。
我們先來(lái)了解一下一個(gè)非常簡(jiǎn)單的創(chuàng)建圖像腳本。
在下面的腳本文件image.php中,按前面介紹的繪制圖像的四個(gè)步驟,使用GD庫(kù)動(dòng)態(tài)輸出一個(gè)扇形統(tǒng)計(jì)圖。
以wps2019工具為例,具體操作步驟如下所示:
一、打開(kāi)電腦桌面,雙擊excel表格,如圖所示。
二、打開(kāi)excel表格之后,點(diǎn)擊上方的插入選項(xiàng)卡,如圖所示。
三、選擇要制作成餅圖的數(shù)據(jù)表,然后點(diǎn)擊上方的圓形按鈕,如圖所示。
四、在彈出的菜單中,選擇第一個(gè)餅圖選項(xiàng),如圖所示。
五、選擇之后,餅圖就生成了,如圖所示。
網(wǎng)頁(yè)標(biāo)題:php數(shù)據(jù)餅圖制作方法 如何做數(shù)據(jù)餅圖
網(wǎng)站地址:http://chinadenli.net/article30/hgcoso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、虛擬主機(jī)、搜索引擎優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)、、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)