JpGraph 是一款用 PHP 編寫的作圖架構軟體(需要 GD 庫支援),它功能豐富,調用簡單,儘管如此,有些圖表的細節需要仔細查資料研究,本人在做項目時把遇到的問題和解決方案與大家分享。
安裝
JpGraph 的安裝十分簡便 :到 http://sourceforge.net/projects/jpgraph/ 下載,解壓到應用程式的根路徑即可。
使用範例一
這次我們以 Examples 目錄下的 example0.php 為例來講解一下如何初步使用 JpGraph。example0.php 代碼如下:
程式碼片段
<?php
include ("../jpgraph.php"); //必須要引用的檔案
include ("../jpgraph_line.php"); //包含曲線圖檔案
// y 軸資料,以數組形式賦值
$ydata = array(11,3,8,12,5,1,9,13,5,7);
// 建立 Graph 類,350 為寬度,250 長度,auto:表示產生的快取檔案名是該檔案的檔案名稱+副檔名(.jpg .png .gif ……)
$graph = new Graph(350,250,"auto");
// 設定刻度類型,x軸刻度可作為文本標註的直線刻度,y軸為直線刻度
$graph->SetScale("textlin");
// 建立座標類,將y軸資料注入
$lineplot=new LinePlot($ydata);
// y 軸連線設定為藍色
$lineplot->SetColor("blue");
// 座標類注入表徵圖類
$graph->Add($lineplot);
// 顯示圖
$graph->Stroke(); ?>
使用範例二
程式碼片段
<?php
$ydata = array(11,3,8,12,5,1,9,13,5,7);
// x 軸資料,作為 x 軸標註
$xdata = array('2007-3-01','2007-3-03','2007-3-05','2007-3-07','2007-3-09','2007-3-01','2007-3-11','2007-3-13','2007-3-15');
$graph = new Graph(350,150,"auto");
$graph->SetScale("textlin");
// 設定圖表大標題
$graph->title->Set(‘Example’);
$lineplot = new LinePlot($ydata);
$graph->Add($lineplot);
// 設定圖表灰階四周邊距,順序為左右上下
$graph->img->SetMargin(60,20,20,50);
// 設定輸出檔案格式為 jpg,預設為 png
$graph->img->SetImgFormat( "jpeg");
// y 軸座標描點形狀為菱形
$lineplot-> mark->SetType(MARK_DIAMOND );
// 加入 x 軸標註
$graph->xaxis->SetTickLabels($xdata);
// 定位 x 軸標註垂直位置應在最下方
$graph->xaxis->SetPos("min");
// 設定 x 軸標註文字為斜體,粗體,6號小字
$graph->xaxis->SetFont(FF_ARIAL,FS_BOLD,6);
// 設定 x 軸標註文字 45 度傾斜。註:前面 SetFont 必須為 FF_ARIAL
$graph->xaxis->SetLabelAngle(45);
// x 軸刻度間隔為 2
$graph->xaxis->SetTextLabelInterval(2);
// 標題和 y 軸標題字型為標準字型
$graph->title->SetFont(FF_FONT1,FS_BOLD,2);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
// y 軸座標點連線為藍色加深加粗
$lineplot->SetColor("blue:0.5");
$lineplot->SetWeight(2);
$graph->yaxis->SetColor("black");
$graph->yaxis->SetWeight(2);
// 陰影製作效果
$graph->SetShadow();
// 顯示圖形
$graph->Stroke(); ?>
可能遇到的問題
由於涉及到圖象輸出,所以在某些GUI配置不正確的系統中就可能會遇到一些顯示問題。最常見的是“找不到 XX 字型(比如FF_ARIAL 字型)”,遇到這種情況,我們可採取以下步驟解決:
1. 首先到具備這些字型的系統(比如 Windows 等系統)中或可以下載這些字型的地方把相關的字型羅列出來,然後把他們複製到某個我們 WEB 程式可以訪問的目錄(假定為 /www/fonts )內。
以 FF_ARIAL 字型為例,我們可以在 Windows 系統的 $windows/fonts 找到 arialbd.ttf 、arialbi.ttf、ariali.ttf、arial.ttf 這幾個字型檔,然後將其複製到 /www/fonts。
2. 修改jpgraph.php檔案。
找到
DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/truetype/');
這一行,將其改為
DEFINE('TTF_DIR',’/www/fonts/’);
重新重新整理即可