JpGraph簡介 --功能超級強大的PHP畫相簿

yeahokay發表於2007-08-10

一、 麼是JpGraph
以前用PHP作圖時必須要掌握複雜抽象的畫圖函式,或者藉助一些網上下載的花柱形圖、餅形圖的類來實現。沒有一個統一的chart類來實現圖表的快速開發。
現在我們有了一個新的選擇:JpGraph。專門提供圖表的類庫。它使得作圖變成了一件非常簡單的事情,你只需從資料庫中取出相關資料,定義標題,圖表型別,然後的事情就交給JpGraph,只需掌握為數不多的JpGraph內建函式(可以參照JpGraph附帶例子學習),就可以畫出非常炫目的圖表!
一、 JpGraph安裝方法:
1、先到下載最新的版本。
2、確保你的PHP版本最低為4.04(最好是4.1.1),並且支援GD2庫。必須確保GD2庫可以正常執行,可以透過執行phpinfo()來檢視GD庫的資訊是否存在的方法來判斷。
3、將下載的JpGraph壓縮包解壓到任意資料夾。
4、設定jpgraph.php(jpgraph的主配置檔案)。設定jpgraph的cache(快取)資料夾,和TTF(字型)資料夾。
分別在35行和38行
35 // DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");

38 // DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");

Linux系統改為:

DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");'
DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");

Windows系統改為:

DEFINE("CACHE_DIR","c:/apache/htdocs/ jpgraph_cache/");'
DEFINE("TTF_DIR","c:/windows/fonts");

注意事項:
(1)cache(快取)資料夾路徑可以自己定義,而TTF(字型)資料夾必須是%system%/Fonts。
(2)確保PHP對cache(快取)資料夾有寫的許可權。
5、完成上述設定後就可以使用JpGraph了,可以先將JpGraph的例子copy到htdocs資料夾中,執行一下看看。呵呵,200多個例子,包含各類圖表,夠學一陣子的。

在實際使用中,筆者還遇到了一些問題,比如字型錯誤等等,還在研究中……

[@more@]

從資料庫中讀取資料到jpgraph圖表中
1、將./src/Examples目錄中的檔案example16.2.php以及./src目錄中的檔案jpgraph_bar.php、jpgraph_gradient.php、jpgraph_line.php、jpgraph_plotmark.inc、jpgraph.php複製到同一目錄下。
2、建立資料庫jpg,資料庫表test
建立2個欄位:
id(主鍵):int
number:int
並新增一些資料
3、修改example16.2.php
修改後的程式碼
include ("jpgraph.php");
include ("jpgraph_line.php");
include ("jpgraph_bar.php");

$connect=mysql_connect("localhost","root","");
mysql_select_db("jpg",$connect);
$query=mysql_query("select * from test",$connect);
$i=0;
while ($array=mysql_fetch_array($query)) {
$l2datay[$i]=$array["number"];
$i++;
}
mysql_close($connect);


// Create the graph.
$graph = new Graph(400,200,"auto");
$graph->SetScale("textlin");

$graph->img->SetMargin(40,130,20,40);
$graph->SetShadow();


// Create the bar plot
$bplot = new BarPlot($l2datay);
$bplot->SetFillColor("orange");
$bplot->SetLegend("Result");

// Add the plots to t'he graph

$graph->Add($bplot);


$graph->title->Set("Adding a line plot to a bar graph v1");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

//$graph->xaxis->SetTickLabels($datax);
//$graph->xaxis->SetTextTickInterval(2);

// Display the graph
$graph->Stroke();
?>

4、重新整理頁面即可看到結果

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/786540/viewspace-941979/,如需轉載,請註明出處,否則將追究法律責任。

相關文章