jpgraph

jpgraph

jpgraph是掌握複雜抽象的畫圖函式。以前用PHP作圖時必須要掌握複雜抽象的畫圖函式,或者藉助一些網上下載的畫柱形圖、餅形圖的類來實現。沒有一個統一的chart類來實現圖表的快速開發。

簡介

現在我們有了一個新的選擇:JpGraph。專門提供圖表的類庫。它使得作圖變成了一件非常簡單的事情,你只需從資料庫中取出相關數據,定義標題,圖表類型,然後的事情就交給JpGraph,只需掌握為數不多的JpGraph內置函式(可以參照JpGraph附帶例子學習),就可以畫出非常炫目的圖表!

安裝方法

先到各大網站上下載最新的版本。

確保你的PHP版本最低為4.04(最好是4.1.1),並且支持GD庫。必須確保GD庫可以正常運行,可以通過運行phpinfo()來查看GD庫的信息是否存在的方法來判斷。同時要有要求GD庫的版本應為2.0,而不是1.0。

將下載的JpGraph壓縮檔解壓到任意資料夾。

設定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(快取)資料夾有寫的許可權。

完成上述設定後就可以使用JpGraph了,可以先將JpGraph的例子copy到htdocs資料夾中,運行一下看看。呵呵,200多個例子,包含各類圖表,夠學一陣子的。

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

數據讀取

將./src/Examples目錄中的檔案example16.2.php以及./src目錄中的檔案jpgraph_bar.php、jpgraph_gradient.php、jpgraph_line.php、jpgraph_plotmark.inc、jpgraph.php拷貝到同一目錄下。

建立資料庫jpg,資料庫表test

建立2個欄位:

id(主鍵):int

number:int

並添加一些數據

修改example16.2.php

修改後的代碼

<?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();

?>

刷新頁面即可看到結果

歷史信息

網路最佳化,300*200的圖片大小大概為2K,但普通圖片要比JpGraph生成的大4-5K

支持GD1和GD2,並且JpGraph會自動探測系統安裝了哪個庫

支持多種圖表樣式,包括常見的網狀圖、花柱形圖、餅形圖(2D和3D的都可以)等等

支持3D透明,α混合技術

支持超過400種的已命名顏色

支持多種方式帶背景圖片的繪圖

支持生成的圖表網路快取以減輕HTTP伺服器負擔

2009年9月17日:更新JpGraph 1.27.1。

2009年4月18日:更新JpGraph 1.27和JpGraph 2.34。

12月2日:今日有兩位phpchina的朋友加入我們的翻譯團隊:刺蝟和Deman。

2008年6月28日:JpGraph中文站發布,雖然這是用ASP製作的網站,但並不代表站長偏愛ASP

2008年6月15日:JpGraph 1.26發布。修復了餅形圖分割片問題。也許這將是1.x發布版宣布停止更新後的最後一版

2008年6月14日:JpGraph 2.33發布

2016年8月9日:JpGraph 4.0.1發布

相關詞條

相關搜尋

熱門詞條

聯絡我們