PHP生成圖表pChart的示例解析
pChart是一個(gè)開(kāi)源的圖表生成庫(kù),主要涉及3個(gè)Class:pChart.class, pData.class, pCache.class,可生成20多種簡(jiǎn)單或復(fù)雜的圖表,支持PNG,JPG,GIF通用圖片格式。數(shù)據(jù)源可以來(lái)自于Database,CSV,當(dāng)然也可以手寫(xiě)。使用該程序PHP需要開(kāi)啟GD服務(wù),先來(lái)看看pChart的工作流程:
主要分為三步:
- * 讀取用于生成圖表數(shù)據(jù)(數(shù)據(jù)庫(kù)、文件)
- * 設(shè)計(jì)圖表樣式(圓角、底色等)
- * 制作標(biāo)簽、題目、圖例并生成圖表
下面看一個(gè)簡(jiǎn)單的柱狀圖表:
代碼如下:
<?php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset definition $DataSet = new pData; //圖表數(shù)據(jù) $DataSet->AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1"); $DataSet->AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2"); $DataSet->AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3"); $DataSet->AddAllSeries(); $DataSet->SetAbsciseLabelSerie(); //數(shù)據(jù)圖例 $DataSet->SetSerieName("Microsoft","Serie1"); $DataSet->SetSerieName("IBM","Serie2"); $DataSet->SetSerieName("Google","Serie3"); // Initialise the graph $Test = new pChart(700,230); //設(shè)置圖表尺寸、樣式 $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->setGraphArea(50,30,680,200); $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE); $Test->drawGrid(4,TRUE,230,230,230,50); // Draw the 0 line $Test->setFontProperties("Fonts/MankSans.ttf",6); $Test->drawTreshold(0,143,55,72,TRUE,TRUE); // Draw the bar graph //柱狀圖要使用drawBarGraph() $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,80); // Finish the graph //制作圖例、標(biāo)題、字體等屬性 $Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255); $Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawTitle(50,22,"Example",50,50,50,585); //生成圖表 $imageFile = "example12.png"; $Test->Render($imageFile); echo '<img src="'.$imageFile.'">'; ?>
這個(gè)是雷達(dá)效果的:
代碼:
<?php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset definition $DataSet = new pData; $DataSet->AddPoint(array("Memory","Disk","Network","Slots","CPU"),"Label"); $DataSet->AddPoint(array(6,4,7,4,5),"Serie1"); $DataSet->AddPoint(array(2,3,5,2,4),"Serie2"); $DataSet->AddSerie("Serie1"); $DataSet->AddSerie("Serie2"); $DataSet->SetAbsciseLabelSerie("Label"); $DataSet->SetSerieName("Reference","Serie1"); $DataSet->SetSerieName("Tested computer","Serie2"); // Initialise the graph $Test = new pChart(400,400); $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->drawFilledRoundedRectangle(7,7,393,393,5,240,240,240); $Test->drawRoundedRectangle(5,5,395,395,5,230,230,230); $Test->setGraphArea(30,30,370,370); $Test->drawFilledRoundedRectangle(30,30,370,370,5,255,255,255); $Test->drawRoundedRectangle(30,30,370,370,5,220,220,220); // Draw the radar graph //要使用drawRadarAxis()生成雷達(dá)效果 $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE,20,120,120,120,230,230,230); $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),50,20); // Finish the graph $Test->drawLegend(15,15,$DataSet->GetDataDescription(),255,255,255); $Test->setFontProperties("Fonts/tahoma.ttf",10); $Test->drawTitle(0,22,"Example",50,50,50,400); $imageFile = "example8.png"; $Test->Render($imageFile); echo '<img src="'.$imageFile.'">'; ?>
再看幾個(gè)其他的效果
1,餅圖:
2, 雙座標(biāo)曲線(xiàn)圖:
3, 層疊柱狀圖:
4, 多圖表:
圖表的種類(lèi)已經(jīng)相當(dāng)豐富了,具體圖表設(shè)置請(qǐng)參考
http://pchart.sourceforge.net/documentation.php?topic=pChart
::源代碼下載:::
http://xiazai.jb51.net/202007/yuanma/pChart_jb51.rar
到此這篇關(guān)于PHP生成圖表pChart的示例解析的文章就介紹到這了,更多相關(guān)PHP生成圖表pChart內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決wincache不支持64位PHP5.5/5.6的問(wèn)題(提供64位wincache下載)
這篇文章主要解決wincache不支持64位PHP5.5/5.6的問(wèn)題,并提供64位wincache的下載,需要的朋友可以參考下。2016-06-06PHP基于phpqrcode類(lèi)生成二維碼的方法詳解
這篇文章主要介紹了PHP基于phpqrcode類(lèi)生成二維碼的方法,結(jié)合實(shí)例形式詳細(xì)分析了phpqrcode類(lèi)的具體功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-03-03php中的觀(guān)察者模式簡(jiǎn)單實(shí)例
這篇文章主要介紹了php中的觀(guān)察者模式簡(jiǎn)單實(shí)例,觀(guān)察者模式是設(shè)計(jì)模式中比較常見(jiàn)的一個(gè)模式,包含兩個(gè)或者更多的互相交互的類(lèi),本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01PHP+Ajax實(shí)現(xiàn)的無(wú)刷新分頁(yè)功能詳解【附demo源碼下載】
這篇文章主要介紹了PHP+Ajax實(shí)現(xiàn)的無(wú)刷新分頁(yè)功能,結(jié)合具體實(shí)例形式分析了php+ajax通過(guò)pdo操作類(lèi)讀取數(shù)據(jù)庫(kù)并分頁(yè)顯示的相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-07-07