轉(zhuǎn)帖|其它|編輯:郝浩|2011-03-16 11:46:00.000|閱讀 1520 次
概述:pChart是一個(gè)開源的圖表生成庫(kù),主要涉及3個(gè)Class:pChart.class, pData.class, pCache.class,可生成20多種簡(jiǎn)單或復(fù)雜的圖表,支持PNG,JPG,GIF通用圖片格式。數(shù)據(jù)源可以來自于Database,CSV,當(dāng)然也可以手寫。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
pChart是一個(gè)開源的圖表生成庫(kù),主要涉及3個(gè)Class:pChart.class, pData.class, pCache.class,可生成20多種簡(jiǎn)單或復(fù)雜的圖表,支持PNG,JPG,GIF通用圖片格式。數(shù)據(jù)源可以來自于Database,CSV,當(dāng)然也可以手寫。使用該程序PHP需要開啟GD服務(wù),先來看看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.'">';
?>201012171028525038.gif
這個(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)曲線圖:
3, 層疊柱狀圖:
4, 多圖表:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:{GnieTech}