pChart是一個開源的圖表生成庫,主要涉及3個Class:pChart.class, pData.class, pCache.class,可生成20多種簡單或復(fù)雜的圖表,支持PNG,JPG,GIF通用圖片格式。數(shù)據(jù)源可以來自于Database,CSV,當(dāng)然也可以手寫。使用該程序PHP需要開啟GD服務(wù),先來看看pChart的工作流程:
主要分為三步:
- * 讀取用于生成圖表數(shù)據(jù)(數(shù)據(jù)庫、文件)
- * 設(shè)計圖表樣式(圓角、底色等)
- * 制作標(biāo)簽、題目、圖例并生成圖表
下面看一個簡單的柱狀圖表:
代碼如下:
?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.'">';
?>
這個是雷達(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.'">';
?>
再看幾個其他的效果
1,餅圖:
2, 雙座標(biāo)曲線圖:
3, 層疊柱狀圖:
4, 多圖表:
圖表的種類已經(jīng)相當(dāng)豐富了,具體圖表設(shè)置請參考
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 基于canvasJS在PHP中制作動態(tài)圖表
- PHP jpgraph庫的配置及生成統(tǒng)計圖表:折線圖、柱狀圖、餅狀圖
- PHP實現(xiàn)的曲線統(tǒng)計圖表示例